--- /dev/null
+Submitted By: Archaic (archaic -aT- linuxfromscratch -DoT- org)
+Date: 2006-03-07
+Initial Package Version: 1.18.1.1
+Origin: http://ftp.debian.org/debian/pool/main/g/groff/groff_1.18.1.1-11.diff.gz
+Upstream Status: This is a debian-specific patch
+Description: Adds the ascii8 and nippon devices to groff for man-db.
+
+--- groff-1.18.1.1.orig/README.jp
++++ groff-1.18.1.1/README.jp
+@@ -0,0 +1,142 @@
++
++ ÆüËܸìÂбþÈÇ groff-1.12 (jgroff-0.101)
++
++
++ ËÌÀî ¿®µü (Kitagawa Toshiyuki)
++ tm-kita@kh.rim.or.jp
++
++ Ìø¸¶ ÎÉμ (Yanagihara Yoshiaki)
++ yochi@debian.or.jp
++
++ GNU¤Îroff¥Õ¥©¡¼¥Þ¥Ã¥¿groff(version 1.12)¤ÎÆüËܸìÂбþ¤ò¹Ô¤Ê¤¤¤Þ¤·¤¿¡£
++ ¾å°Ì¸ß´¹¤È¤Ê¤Ã¤Æ¤¤¤Þ¤¹¤Î¤Ç¡¢ÆüËܸì¤ò´Þ¤Þ¤Ê¤¤roff¥Ç¡¼¥¿¤Ï¥ª¥ê¥¸¥Ê¥ë¤É
++¤ª¤ê¤ÎÆ°ºî¤Ë¤Ê¤ê¤Þ¤¹¡£ÆüËܸ첽¤Ë´Ø¤¹¤ë½¤ÀµÉôʬ¤Ë¤Ä¤¤¤Æ¤ÎÃøºî¸¢¤ÏGNU
++General Public License Version 2 ¤Ë½¾¤¤¤Þ¤¹(¾ÜºÙ¤ÏCOPYING¤ò¸æÍ÷¤¯¤À¤µ¤¤)¡£
++
++ ÆüËܸìgroff(jgroff)¤Î¸½¥Ð¡¼¥¸¥ç¥ó¤Ï0.101(ºÇ½ª¦ÂÈÇ)¤Ç¤¹¡£¤³¤Î¥Ð¡¼¥¸¥ç¥ó
++¤Ç¤Ï°Ê²¼¤Î¥â¥¸¥å¡¼¥ë¤¬ÆüËܸ첽¤µ¤ì¤Æ¤¤¤Þ¤¹¡£
++
++ groff ... groff¥É¥é¥¤¥Ð
++ gtroff ... groffËÜÂÎ
++ grotty ... üËöÍѥݥ¹¥È¥×¥í¥»¥Ã¥µ
++ grops ... PostScriptÍѥݥ¹¥È¥×¥í¥»¥Ã¥µ
++ grohtml ... HTMLÍѥݥ¹¥È¥×¥í¥»¥Ã¥µ(Thanks HANATAKA Shinya
++ <hanataka@abyss.rim.or.jp>)
++ grodvi ... DVIÍѥݥ¹¥È¥×¥í¥»¥Ã¥µ (NTT JTeX or ASCIIÆüËܸìTeX)
++ gxditview ... X¥¦¥£¥ó¥É¥¦Íѥݥ¹¥È¥×¥í¥»¥Ã¥µ
++ gtbl ... tbl¥Þ¥¯¥íÍÑ¥×¥ê¥×¥í¥»¥Ã¥µ
++ gpic ... pic¥Þ¥¯¥íÍÑ¥×¥ê¥×¥í¥»¥Ã¥µ
++ geqn ... eqn¥Þ¥¯¥íÍÑ¥×¥ê¥×¥í¥»¥Ã¥µ
++ xtotroff ... X¤Î¥Õ¥©¥ó¥È¤«¤égroffÍÑ¥Õ¥©¥ó¥È¥Õ¥¡¥¤¥ë¤òºîÀ®¤¹
++ ¤ë¥Ä¡¼¥ë
++
++¡ô lj4¥Ý¥¹¥È¥×¥í¥»¥Ã¥µ¡¢bib´ØÏ¢¤Î¥³¥Þ¥ó¥É¤ÏÆüËܸì̤Âбþ¤Ç¤¹¡£
++
++
++¡ý ¥¤¥ó¥¹¥È¡¼¥ë
++
++ °Ê²¼¤Î´Ä¶¤Çmake½ÐÍè¤ë¤³¤È¤ò³Îǧ¤·¤Æ¤¤¤Þ¤¹¡£
++
++ ¡ù FreeBSD 2.1.0-RELEASE
++ XFree86-3.1.2, gcc 2.6.3
++
++ ¡ù Debian GNU/Linux 2.2
++
++ ¡ù NEC EWS/4800/310
++ SVR4.2 Release9.1 Rev.B, X11R5, gcc 2.6.0
++
++ (1) ¥ª¥ê¥¸¥Ê¥ë¤ÈƱÍÍconfigure¤ò¼Â¹Ô¤·¤¿¸å¡¢make & install¤·¤Æ²¼¤µ¤¤¡£
++ ¾Ü¤·¤¯¤ÏINSTALL¤ò»²¾È¤·¤Æ¤¯¤À¤µ¤¤¡£
++
++ *) grodvi¤ÏNTT JTeX·Á¼°¤Þ¤¿¤ÏASCIIÆüËܸìTeX·Á¼°¤ÎDVI¥Õ¥¡¥¤¥ë¤ò¥µ¥Ý¡¼
++ ¥È¤·¤Æ¤¤¤Þ¤¹¡£groff¤¬½ÐÎϤ¹¤ëDVI¥Õ¥¡¥¤¥ë¤òASCIIÆüËܸìTeX·Á¼°¤Ë
++ ¤·¤¿¤¤¾ì¹ç¤Ïconfigure --JTeX=ASCII¤È¤·¤Æ¤¯¤À¤µ¤¤¡£
++ --JTeX¥ª¥×¥·¥ç¥ó¤ò»ØÄꤷ¤Ê¤«¤Ã¤¿¾ì¹ç¤ÏNTT JTeX·Á¼°¤Ë¤Ê¤ê¤Þ¤¹¡£
++
++ (2) groff¤Îmake¤Î¸å¡¢gxditview(groff¤ÎX¥¦¥£¥ó¥É¥¦Íѥݥ¹¥È¥×¥í¥»¥Ã¥µ)
++ ¤òmake¤·¤Þ¤¹¡£¥È¥Ã¥×¥Ç¥£¥ì¥¯¥È¥êľ²¼¤Îxditview¤Øcd¤·¤Æ¡¢
++
++ % xmkmf
++ % make depend
++ % make all
++ % make install install.man
++
++ ¤Ç¡¢¥¤¥ó¥¹¥È¡¼¥ë´°Î»¤Ç¤¹¡£
++
++
++¡ý »È¤¤Êý
++
++ groff¤Î-T¥ª¥×¥·¥ç¥ó¤Ë-Tnippon(üËöɽ¼¨)¤òÄɲä·¤¿°Ê³°¤Ï¥ª¥ê¥¸¥Ê¥ë¤Î¤Þ
++¤Þ¤Ç¤¹¡£
++°Ê²¼¤Ï»ÈÍÑÎã¡£
++
++ (£±) groff -Tnippon -man groff.jman
++
++ ÆüËܸì¤ò´Þ¤àroff¥Õ¥¡¥¤¥ë(groff.jman)¤òman¥Þ¥¯¥í¤ò»È¤Ã¤Æ¥Õ¥©¡¼¥Þ¥Ã¥È¤·¡¢
++üËö¤Ëɽ¼¨¤·¤Þ¤¹¡£
++
++ (£²) groff -Tps -man groff.jman
++
++ ÆüËܸì¤ò´Þ¤àroff¥Õ¥¡¥¤¥ë¤ò¥Õ¥©¡¼¥Þ¥Ã¥È¤·¡¢PostScript¤ËÊÑ´¹¤·¤Þ¤¹¡£
++
++ (£³) groff -TX100 -man groff.jman
++
++ ÆüËܸì¤ò´Þ¤àroff¥Õ¥¡¥¤¥ë¤ò¥Õ¥©¡¼¥Þ¥Ã¥È¤·¡¢X¥¦¥£¥ó¥É¥¦¤Ëɽ¼¨¤·¤Þ¤¹¡£
++
++ (£´) groff -Tdvi -man groff.jman
++
++ ÆüËܸì¤ò´Þ¤àroff¥Õ¥¡¥¤¥ë¤ò¥Õ¥©¡¼¥Þ¥Ã¥È¤·¡¢DVI¥Õ¥¡¥¤¥ë¤ò½ÐÎϤ·¤Þ¤¹¡£
++
++
++¡ý ÆüËܸ첽¤Ë¤Ä¤¤¤Æ
++
++¡¦ ÆüËܸìʸ»ú¥³¡¼¥É¤ÏÆüËܸìEUC(¤Î¥³¡¼¥É¥»¥Ã¥È1)¤Î¤ß¥µ¥Ý¡¼¥È¤·¤Æ¤¤¤Þ¤¹¡£
++
++¡¦ ÆüËܸì¥Õ¥©¥ó¥È¤Ë¤Ä¤¤¤Æ¤Ï¡¢¥«¥ì¥ó¥È¥Õ¥©¥ó¥È¤¬¥Ü¡¼¥ë¥ÉÂΤλþ¤Ï¥´¥·¥Ã
++ ¥¯ÂΤˡ¢¤½¤ì°Ê³°¤Î¥Õ¥©¥ó¥È(¥í¡¼¥Þ¥ó¡¢¥¤¥¿¥ê¥Ã¥¯¡¢¥¤¥¿¥ê¥Ã¥¯¥Ü¡¼¥ë¥É
++ Åù)¤¬¥«¥ì¥ó¥È¥Õ¥©¥ó¥È¤Î»þ¤ÏÌÀÄ«ÂΤˡ¢¼«Æ°Åª¤ËÀÚ¤êÂؤï¤ê¤Þ¤¹¡£ÆüËܸì
++ ¥Õ¥©¥ó¥È¤òľÀÜ»ØÄꤹ¤ë¤³¤È¤Ï½ÐÍè¤Þ¤»¤ó¡£
++
++ (Ãí) ¥Õ¥©¥ó¥È¥Õ¥¡¥¤¥ë̾¤¬'B'¤Ç½ª¤Ã¤Æ¤¤¤ë¥Õ¥©¥ó¥È(B¡¢TB¡¢HNB¤Ê¤É)¤ò
++ ¥Ü¡¼¥ë¥É¥Õ¥©¥ó¥È¤È¤·¤Æ¤¤¤Þ¤¹¡£
++
++¡¦ ¹ÔƬ¡¢¤ª¤è¤Ó¹ÔËö¶Ø§¤ËÂбþ¤·¤Æ¤¤¤Þ¤¹¡£¤½¤ì¤¾¤ì¤Î¶Ø§ʸ»ú¤Ï¡¢
++
++ ¹ÔƬ¶Ø§ʸ»ú: ¡¢ ¡£¡¤¡¥¡¦¡§¡¨¡©¡ª¡Ë¡Í¡Ï¡Ñ¡×¡Ù¡Û
++ ¤¡¤£¤¥¤§¤©¤Ã¤ã¤å¤ç¥¡¥£¥¥¥§¥©¥Ã¥ã¥å¥ç
++ . ? ! " ' ) ] * , : ; > }
++ ¹ÔËö¶Ø§ʸ»ú: ¡Ê ¡Ì¡Î¡Ð¡Ö¡Ø¡Ú
++
++ ¤òÄêµÁ¤·¤Æ¤¤¤Þ¤¹¡£
++
++¡¦ -Tps¤ò»ØÄꤷ¤¿¾ì¹ç¡¢EUCʸ»ú¤ÈASCIIʸ»ú¤Î´Ö¤Ë¤Ï¡¢Éý¤Î¶¹¤¤¶õÇò¤¬¼«Æ°
++ Ū¤ËÁÞÆþ¤µ¤ì¤Þ¤¹¡£¤³¤Î¶õÇò¤ÎÉý¤Ïdevps/DESC¤Îwcharkern¤Ç»ØÄꤷ¤Þ¤¹¡£
++ unitñ°Ì¤Ç¤¹¡£0¤ò»ØÄꤹ¤ë¤È¶õÇò¤ÏÁÞÆþ¤µ¤ì¤Ê¤¯¤Ê¤ê¤Þ¤¹¡£
++
++¡¦ -Tps¤ò»ØÄꤷ¤¿¾ì¹ç¡¢EUCʸ»ú¤ÏASCIIʸ»ú¤ËÂФ·¤Æ¾¯¤·²¼¤²¤Æ½ÐÎϤµ¤ì¤Þ
++ ¤¹(¤½¤Î¤Þ¤Þ¤À¤ÈASCIIʸ»ú¤¬Íî¤Á¹þ¤ó¤Ç¸«¤¨¤ë¤¿¤á)¡£¤³¤Î²¼¤²Éý¤Ï
++ devps/DESC¤Îlowerwchar¤Ç»ØÄꤷ¤Þ¤¹¡£unitñ°Ì¤Ç¤¹¡£0¤ò»ØÄꤹ¤ë¤È»ú²¼
++ ¤²¤Ï¹Ô¤Ê¤ï¤ì¤Þ¤»¤ó¡£
++
++¡¦ ¥ª¥ê¥¸¥Ê¥ë¤Ç¤Ï²þ¹Ô¥³¡¼¥É¤Ï̵¾ò·ï¤Ë¥¹¥Ú¡¼¥¹Ê¸»ú¤ËÊÑ´¹¤µ¤ì¤Þ¤¹¤¬¡¢EUC
++ ʸ»ú¤Ç°Ï¤Þ¤ì¤¿²þ¹Ô¥³¡¼¥É¤Ï¥¹¥Ú¡¼¥¹¤ËÊÑ´¹¤»¤ºÌµ»ë¤¹¤ë¤è¤¦¤Ë¤·¤Þ¤·¤¿¡£
++
++¡¦ EUC¤Î¥¹¥Ú¡¼¥¹Ê¸»ú(0xa1a1)¤ÏASCII¤Î¥¹¥Ú¡¼¥¹Ê¸»ú¤È¤·¤Æ½èÍý¤µ¤ì¤Þ¤¹¡£
++
++
++¡ý ¼Õ¼
++
++grodvi¤ÎASCIIÆüËܸìTeXÂбþ¤Ï¡¢±§ÅÔµÜÂç³Ø¤Î²£ÅĤµ¤ó¤¬¹Ô¤Ê¤Ã¤Æ¤¯¤À¤µ¤¤¤Þ
++¤·¤¿¡£grohtml¤ÎÆüËܸì(EUC)Âбþ¤Ï¡¢²Ö¿ó¿®ºÈ¤µ¤ó¤¬¹Ô¤Ã¤Æ¤¯¤ì¤Þ¤·¤¿¡£
++¤Þ¤¿¡¢Â¿¤¯¤ÎÊý¤«¤é¥Ð¥°¤Ë´Ø¤¹¤ëÊó¹ð¡¢½¤Àµ¥¤¥á¡¼¥¸¤òÁ÷¤Ã¤Æĺ¤¤Þ¤·¤¿¡£
++¸æ¶¨ÎϤ¯¤À¤µ¤Ã¤¿³§ÍͤˤϤȤƤⴶ¼Õ¤·¤Æ¤ª¤ê¤Þ¤¹¡£ÍÆñ¤¦¤´¤¶¤¤¤Þ¤·¤¿¡£
++
++
++¡ý ¤ª´ê¤¤
++
++¸½¥Ð¡¼¥¸¥ç¥ó¤Ç¤Ïlj4¥Ý¥¹¥È¥×¥í¥»¥Ã¥µ¡¢bib´ØÏ¢¤Î¥³¥Þ¥ó¥É·²¤¬ÆüËܸ첽¤µ¤ì
++¤Æ¤ª¤ê¤Þ¤»¤ó¡£¤³¤ì¤é¤ÎÆüËܸ첽¤ò¹Ô¤Ã¤Æ¤¯¤À¤µ¤ëÊý¤òÊ罸Ãפ·¤Æ¤ª¤ê¤Þ¤¹¡£
++¤¼¤Ò¸æ¶¨ÎϤ¯¤À¤µ¤¤¡£¤Þ¤¿¡¢ÆüËܸìÂбþgroff¤Ë´Ø¤·¤Æ¸æ°Õ¸«¡¢¸æ´õ˾Åù¤ò
++À§Èó¤ªÊ¹¤«¤»¤¯¤À¤µ¤¤¡£º£¸å¤Î»²¹Í¤Ë¤µ¤»¤Æĺ¤¤Þ¤¹(¤â¤Á¤í¤ó¥Ð¥°Êó¹ð¤â
++´¿·Þ¤Ç¤¹¡ª)¡£
++°Ê¾å¤ÏE-Mail¤Ë¤Æ¡¢tm-kita@kh.rim.or.jp°¸¤Ë¤ªÁ÷¤ê¤¯¤À¤µ¤¤¡£
+--- groff-1.18.1.1.orig/src/include/config.hin
++++ groff-1.18.1.1/src/include/config.hin
+@@ -1,84 +1,96 @@
+-/* src/include/config.hin. Generated automatically from configure.ac by autoheader. */
++/* src/include/config.hin. Generated from configure.ac by autoheader. */
+
+ /* Define if your C++ doesn't understand `delete []'. */
+ #undef ARRAY_DELETE_NEEDS_SIZE
+
++/* Define if you want to use multibyte extension. */
++#undef ENABLE_MULTIBYTE
++
+ /* Define if you have a C++ <limits.h>. */
+ #undef HAVE_CC_LIMITS_H
+
+ /* Define if you have a C++ <osfcn.h>. */
+ #undef HAVE_CC_OSFCN_H
+
+-/* Define if you have the <dirent.h> header file. */
++/* Define to 1 if you have the <dirent.h> header file. */
+ #undef HAVE_DIRENT_H
+
+-/* Define if you have the `fmod' function. */
++/* Define to 1 if you have the `fmod' function. */
+ #undef HAVE_FMOD
+
+-/* Define if you have the `getcwd' function. */
++/* Define to 1 if you have the `getcwd' function. */
+ #undef HAVE_GETCWD
+
+-/* Define if you have the `getpagesize' function. */
++/* Define to 1 if you have the `getpagesize' function. */
+ #undef HAVE_GETPAGESIZE
+
+-/* Define if you have the `gettimeofday' function. */
++/* Define to 1 if you have the `gettimeofday' function. */
+ #undef HAVE_GETTIMEOFDAY
+
+-/* Define if you have the <limits.h> header file. */
++/* Define to 1 if you have the <inttypes.h> header file. */
++#undef HAVE_INTTYPES_H
++
++/* Define to 1 if you have the `isatty' function. */
++#undef HAVE_ISATTY
++
++/* Define if you have <langinfo.h> and nl_langinfo(CODESET). */
++#undef HAVE_LANGINFO_CODESET
++
++/* Define to 1 if you have the <limits.h> header file. */
+ #undef HAVE_LIMITS_H
+
+-/* Define if you have the <math.h> header file. */
++/* Define to 1 if you have the <math.h> header file. */
+ #undef HAVE_MATH_H
+
++/* Define to 1 if you have the <memory.h> header file. */
++#undef HAVE_MEMORY_H
++
+ /* Define if you have mkstemp(). */
+ #undef HAVE_MKSTEMP
+
+-/* Define if you have a working `mmap' system call. */
++/* Define to 1 if you have a working `mmap' system call. */
+ #undef HAVE_MMAP
+
+-/* Define if you have the `putenv' function. */
++/* Define to 1 if you have the `putenv' function. */
+ #undef HAVE_PUTENV
+
+-/* Define if you have the `rename' function. */
++/* Define to 1 if you have the `rename' function. */
+ #undef HAVE_RENAME
+
+-/* Define if you have the `snprintf' function. */
++/* Define to 1 if you have the `snprintf' function. */
+ #undef HAVE_SNPRINTF
+
+-/* Define if you have the `isatty' function. */
+-#undef HAVE_ISATTY
+-
+-/* Define if you have the <stdint.h> header file. */
++/* Define to 1 if you have the <stdint.h> header file. */
+ #undef HAVE_STDINT_H
+
+-/* Define if you have the <stdlib.h> header file. */
++/* Define to 1 if you have the <stdlib.h> header file. */
+ #undef HAVE_STDLIB_H
+
+-/* Define if you have the `strcasecmp' function. */
++/* Define to 1 if you have the `strcasecmp' function. */
+ #undef HAVE_STRCASECMP
+
+-/* Define if you have the `strerror' function. */
++/* Define to 1 if you have the `strerror' function. */
+ #undef HAVE_STRERROR
+
+-/* Define if you have the <strings.h> header file. */
++/* Define to 1 if you have the <strings.h> header file. */
+ #undef HAVE_STRINGS_H
+
+-/* Define if you have the <string.h> header file. */
++/* Define to 1 if you have the <string.h> header file. */
+ #undef HAVE_STRING_H
+
+-/* Define if you have the `strncasecmp' function. */
++/* Define to 1 if you have the `strncasecmp' function. */
+ #undef HAVE_STRNCASECMP
+
+-/* Define if you have the `strsep' function. */
++/* Define to 1 if you have the `strsep' function. */
+ #undef HAVE_STRSEP
+
+-/* Define if you have the `strtol' function. */
++/* Define to 1 if you have the `strtol' function. */
+ #undef HAVE_STRTOL
+
+ /* Define if <math.h> defines struct exception. */
+ #undef HAVE_STRUCT_EXCEPTION
+
+-/* Define if you have the <sys/dir.h> header file. */
++/* Define to 1 if you have the <sys/dir.h> header file. */
+ #undef HAVE_SYS_DIR_H
+
+ /* Define if you have sys_errlist in <errno.h> or in <stdio.h>. */
+@@ -87,10 +99,16 @@
+ /* Define if you have sysnerr in <errno.h> or <stdio.h>. */
+ #undef HAVE_SYS_NERR
+
+-/* Define if you have the <sys/time.h> header file. */
++/* Define to 1 if you have the <sys/stat.h> header file. */
++#undef HAVE_SYS_STAT_H
++
++/* Define to 1 if you have the <sys/time.h> header file. */
+ #undef HAVE_SYS_TIME_H
+
+-/* Define if you have the <unistd.h> header file. */
++/* Define to 1 if you have the <sys/types.h> header file. */
++#undef HAVE_SYS_TYPES_H
++
++/* Define to 1 if you have the <unistd.h> header file. */
+ #undef HAVE_UNISTD_H
+
+ /* Define if the host's encoding is EBCDIC. */
+@@ -120,6 +138,21 @@
+ /* Define if your C++ doesn't declare strncasecmp(). */
+ #undef NEED_DECLARATION_STRNCASECMP
+
++/* Define to the address where bug reports for this package should be sent. */
++#undef PACKAGE_BUGREPORT
++
++/* Define to the full name of this package. */
++#undef PACKAGE_NAME
++
++/* Define to the full name and version of this package. */
++#undef PACKAGE_STRING
++
++/* Define to the one symbol short name of this package. */
++#undef PACKAGE_TARNAME
++
++/* Define to the version of this package. */
++#undef PACKAGE_VERSION
++
+ /* Define if the printer's page size is A4. */
+ #undef PAGEA4
+
+@@ -129,7 +162,10 @@
+ /* Define if srand() returns void not int. */
+ #undef RET_TYPE_SRAND_IS_VOID
+
+-/* Define if `sys_siglist' is declared by <signal.h> or <unistd.h>. */
++/* Define to 1 if you have the ANSI C header files. */
++#undef STDC_HEADERS
++
++/* Define to 1 if `sys_siglist' is declared by <signal.h> or <unistd.h>. */
+ #undef SYS_SIGLIST_DECLARED
+
+ /* Define if your C++ compiler uses a traditional (Reiser) preprocessor. */
+--- groff-1.18.1.1.orig/src/include/encoding.h
++++ groff-1.18.1.1/src/include/encoding.h
+@@ -0,0 +1,175 @@
++// -*- C++ -*-
++/* Copyright (c) 2001 Fumitoshi UKAI <ukai@debian.or.jp>
++
++This file is part of groff.
++
++groff is free software; you can redistribute it and/or modify it under
++the terms of the GNU General Public License as published by the Free
++Software Foundation; either version 2, or (at your option) any later
++version.
++
++groff is distributed in the hope that it will be useful, but WITHOUT ANY
++WARRANTY; without even the implied warranty of MERCHANTABILITY or
++FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
++for more details.
++
++You should have received a copy of the GNU General Public License
++along with this program; if not, write to the Free Software
++Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA */
++
++#ifndef ENCODING_H
++#define ENCODING_H
++
++#include <config.h>
++
++#ifdef ENABLE_MULTIBYTE
++typedef int wchar; // negative is used for charcode & index
++#else
++typedef char wchar;
++#endif
++
++#include <stdio.h>
++
++#ifdef __cplusplus
++class encoding_istream {
++public:
++ encoding_istream() {};
++ virtual ~encoding_istream() {};
++ virtual int getbyte() = 0;
++ virtual int peekbyte() = 0;
++ virtual void ungetbyte(int ch) = 0;
++};
++
++class encoding_istream_str: public encoding_istream {
++private:
++ const unsigned char *s;
++ int *i;
++ encoding_istream_str() {};
++public:
++ encoding_istream_str(const unsigned char *s0, int *i0) : s(s0), i(i0) {};
++ ~encoding_istream_str() {};
++ inline int getbyte() { return s[(*i)++]; };
++ inline int peekbyte() { return s[(*i)]; };
++ inline void ungetbyte(int ch) { --(*i); };
++};
++
++class encoding_istream_fp: public encoding_istream {
++private:
++ FILE *fp;
++public:
++ encoding_istream_fp(FILE *fp0) : fp(fp0) {};
++ ~encoding_istream_fp() {};
++ inline int getbyte() { return fgetc(fp); };
++ inline int peekbyte() { int ch = fgetc(fp); ungetc(ch, fp); return ch; };
++ inline void ungetbyte(int ch) { ungetc(ch, fp); };
++};
++
++class encoding_ostream {
++public:
++ encoding_ostream() {};
++ virtual ~encoding_ostream() {};
++ virtual void putbyte(unsigned char ch) = 0;
++};
++
++class encoding_ostream_str: public encoding_ostream {
++private:
++ unsigned char *s;
++ int *i;
++ int len;
++ encoding_ostream_str() {};
++public:
++ encoding_ostream_str(unsigned char *s0, int *i0, int max) : s(s0), i(i0), len(max) {};
++ ~encoding_ostream_str() {};
++ inline void putbyte(unsigned char ch) {
++ if (*i < len)
++ s[(*i)++] = ch;
++ }
++};
++
++class encoding_ostream_fp: public encoding_ostream {
++private:
++ FILE *fp;
++ const char *format;
++public:
++ encoding_ostream_fp(FILE *ofp, const char *fmt = "%c") : fp(ofp), format(fmt) {};
++ ~encoding_ostream_fp() {};
++ inline void putbyte(unsigned char ch) {
++ fprintf(fp, format, ch);
++ }
++};
++
++class encoding_handler {
++public:
++ encoding_handler() {};
++ virtual ~encoding_handler() {};
++
++ // name of this encoding_handler
++ virtual const char *name() { return ""; };
++
++ // check if this byte is byte in multibyte character in this encoding?
++ virtual int is_wchar_byte(unsigned char c) { return 0; };
++
++ // make new wchar from c0 (beginning of multibytes) and rest from `in'
++ virtual wchar make_wchar(unsigned char c0, encoding_istream& in) {
++ return wchar(c0);
++ }
++ // make new wchar from c0 (beginning of multibytes) and rest from `fp'
++ virtual wchar make_wchar(unsigned char c0, FILE *fp) {
++ encoding_istream_fp in(fp);
++ return make_wchar(c0, in);
++ }
++ // make new wchar from c0 (beginning of multibtyes) and rest from
++ // s[*i], *i will be changed to point the byte of next character.
++ virtual wchar make_wchar(unsigned char c0, const unsigned char *s, int *i) {
++ encoding_istream_str in(s, i);
++ return make_wchar(c0, in);
++ }
++
++ // put wchar to outputstream
++ // returns number of bytes written
++ virtual int put_wchar(wchar wc, encoding_ostream& eos) {
++ eos.putbyte((unsigned char)wc);
++ return 1;
++ }
++ // put wchar to `fp' using `fmt'
++ // returns number of bytes written
++ virtual int put_wchar(wchar wc, FILE *fp, const char *fmt = "%c") {
++ encoding_ostream_fp out(fp, fmt);
++ return put_wchar(wc, out);
++ }
++ // put wchar to s[*i] (until maxlen)
++ // *i will be changed to point the byte of next character.
++ virtual int put_wchar(wchar wc, unsigned char *s, int *i, int maxlen) {
++ encoding_ostream_str out(s, i, maxlen);
++ return put_wchar(wc, out);
++ }
++
++ // maximum number of bytes of multibyte character in this encoding
++ virtual int max_wchar_len() { return 1; };
++
++};
++
++encoding_handler* select_input_encoding_handler(const char* encoding_name);
++encoding_handler* select_output_encoding_handler(const char* encoding_name);
++extern encoding_handler* input_encoding;
++extern encoding_handler* output_encoding;
++void init_encoding_handler();
++
++// check if wc is wchar?
++int is_wchar_code(wchar wc);
++
++// check if wc is wchar & can be represented in single byte?
++int is_wchar_singlebyte(wchar wc);
++
++// get singlebyte representation of wchar (if is_wchar_singlebyte(wc))
++unsigned char wchar_singlebyte(wchar wc);
++
++// get actual wide character code
++int wchar_code(wchar wc);
++
++// make wchar from wide character code
++int make_wchar(int w);
++
++#endif
++
++#endif /* ENCODING_H */
+--- groff-1.18.1.1.orig/src/include/lib.h
++++ groff-1.18.1.1/src/include/lib.h
+@@ -88,8 +88,15 @@
+
+ extern char invalid_char_table[];
+
++#include "encoding.h" /* XXX: ukai */
++
+ inline int invalid_input_char(int c)
+ {
++#ifdef ENABLE_MULTIBYTE
++ if (input_encoding->is_wchar_byte(c))
++ return 0;
++ else
++#endif
+ return c >= 0 && invalid_char_table[c];
+ }
+
+--- groff-1.18.1.1.orig/src/include/device.h
++++ groff-1.18.1.1/src/include/device.h
+@@ -18,4 +18,9 @@
+ with groff; see the file COPYING. If not, write to the Free Software
+ Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */
+
++#ifndef _DEVICE_H
++#define _DEVICE_H
++
+ extern const char *device;
++
++#endif /* _DEVICE_H */
+--- groff-1.18.1.1.orig/src/include/config.h
++++ groff-1.18.1.1/src/include/config.h
+@@ -0,0 +1,187 @@
++/* src/include/config.h. Generated by configure. */
++/* src/include/config.hin. Generated from configure.ac by autoheader. */
++
++/* Define if your C++ doesn't understand `delete []'. */
++/* #undef ARRAY_DELETE_NEEDS_SIZE */
++
++/* Define if you want to use multibyte extension. */
++#define ENABLE_MULTIBYTE 1
++
++/* Define if you have a C++ <limits.h>. */
++#define HAVE_CC_LIMITS_H 1
++
++/* Define if you have a C++ <osfcn.h>. */
++/* #undef HAVE_CC_OSFCN_H */
++
++/* Define to 1 if you have the <dirent.h> header file. */
++#define HAVE_DIRENT_H 1
++
++/* Define to 1 if you have the `fmod' function. */
++#define HAVE_FMOD 1
++
++/* Define to 1 if you have the `getcwd' function. */
++#define HAVE_GETCWD 1
++
++/* Define to 1 if you have the `getpagesize' function. */
++#define HAVE_GETPAGESIZE 1
++
++/* Define to 1 if you have the `gettimeofday' function. */
++#define HAVE_GETTIMEOFDAY 1
++
++/* Define to 1 if you have the <inttypes.h> header file. */
++#define HAVE_INTTYPES_H 1
++
++/* Define to 1 if you have the `isatty' function. */
++#define HAVE_ISATTY 1
++
++/* Define if you have <langinfo.h> and nl_langinfo(CODESET). */
++#define HAVE_LANGINFO_CODESET 1
++
++/* Define to 1 if you have the <limits.h> header file. */
++#define HAVE_LIMITS_H 1
++
++/* Define to 1 if you have the <math.h> header file. */
++#define HAVE_MATH_H 1
++
++/* Define to 1 if you have the <memory.h> header file. */
++#define HAVE_MEMORY_H 1
++
++/* Define if you have mkstemp(). */
++#define HAVE_MKSTEMP 1
++
++/* Define to 1 if you have a working `mmap' system call. */
++#define HAVE_MMAP 1
++
++/* Define to 1 if you have the `putenv' function. */
++#define HAVE_PUTENV 1
++
++/* Define to 1 if you have the `rename' function. */
++#define HAVE_RENAME 1
++
++/* Define to 1 if you have the `snprintf' function. */
++#define HAVE_SNPRINTF 1
++
++/* Define to 1 if you have the <stdint.h> header file. */
++#define HAVE_STDINT_H 1
++
++/* Define to 1 if you have the <stdlib.h> header file. */
++#define HAVE_STDLIB_H 1
++
++/* Define to 1 if you have the `strcasecmp' function. */
++#define HAVE_STRCASECMP 1
++
++/* Define to 1 if you have the `strerror' function. */
++#define HAVE_STRERROR 1
++
++/* Define to 1 if you have the <strings.h> header file. */
++#define HAVE_STRINGS_H 1
++
++/* Define to 1 if you have the <string.h> header file. */
++#define HAVE_STRING_H 1
++
++/* Define to 1 if you have the `strncasecmp' function. */
++#define HAVE_STRNCASECMP 1
++
++/* Define to 1 if you have the `strsep' function. */
++#define HAVE_STRSEP 1
++
++/* Define to 1 if you have the `strtol' function. */
++#define HAVE_STRTOL 1
++
++/* Define if <math.h> defines struct exception. */
++#define HAVE_STRUCT_EXCEPTION 1
++
++/* Define to 1 if you have the <sys/dir.h> header file. */
++#define HAVE_SYS_DIR_H 1
++
++/* Define if you have sys_errlist in <errno.h> or in <stdio.h>. */
++#define HAVE_SYS_ERRLIST 1
++
++/* Define if you have sysnerr in <errno.h> or <stdio.h>. */
++#define HAVE_SYS_NERR 1
++
++/* Define to 1 if you have the <sys/stat.h> header file. */
++#define HAVE_SYS_STAT_H 1
++
++/* Define to 1 if you have the <sys/time.h> header file. */
++#define HAVE_SYS_TIME_H 1
++
++/* Define to 1 if you have the <sys/types.h> header file. */
++#define HAVE_SYS_TYPES_H 1
++
++/* Define to 1 if you have the <unistd.h> header file. */
++#define HAVE_UNISTD_H 1
++
++/* Define if the host's encoding is EBCDIC. */
++/* #undef IS_EBCDIC_HOST */
++
++/* Define if localtime() takes a long * not a time_t *. */
++/* #undef LONG_FOR_TIME_T */
++
++/* Define if your C++ doesn't declare gettimeofday(). */
++/* #undef NEED_DECLARATION_GETTIMEOFDAY */
++
++/* Define if your C++ doesn't declare hypot(). */
++/* #undef NEED_DECLARATION_HYPOT */
++
++/* Define if your C++ doesn't declare pclose(). */
++/* #undef NEED_DECLARATION_PCLOSE */
++
++/* Define if your C++ doesn't declare popen(). */
++/* #undef NEED_DECLARATION_POPEN */
++
++/* Define if your C++ doesn't declare putenv(). */
++/* #undef NEED_DECLARATION_PUTENV */
++
++/* Define if your C++ doesn't declare strcasecmp(). */
++/* #undef NEED_DECLARATION_STRCASECMP */
++
++/* Define if your C++ doesn't declare strncasecmp(). */
++/* #undef NEED_DECLARATION_STRNCASECMP */
++
++/* Define to the address where bug reports for this package should be sent. */
++#define PACKAGE_BUGREPORT ""
++
++/* Define to the full name of this package. */
++#define PACKAGE_NAME ""
++
++/* Define to the full name and version of this package. */
++#define PACKAGE_STRING ""
++
++/* Define to the one symbol short name of this package. */
++#define PACKAGE_TARNAME ""
++
++/* Define to the version of this package. */
++#define PACKAGE_VERSION ""
++
++/* Define if the printer's page size is A4. */
++#define PAGEA4 1
++
++/* Define as the return type of signal handlers (`int' or `void'). */
++#define RETSIGTYPE void
++
++/* Define if srand() returns void not int. */
++#define RET_TYPE_SRAND_IS_VOID 1
++
++/* Define to 1 if you have the ANSI C header files. */
++#define STDC_HEADERS 1
++
++/* Define to 1 if `sys_siglist' is declared by <signal.h> or <unistd.h>. */
++#define SYS_SIGLIST_DECLARED 1
++
++/* Define if your C++ compiler uses a traditional (Reiser) preprocessor. */
++/* #undef TRADITIONAL_CPP */
++
++/* Define if the 0200 bit of the status returned by wait() indicates whether a
++ core image was produced for a process that was terminated by a signal. */
++/* #undef WCOREFLAG */
++
++/* Define if -D_POSIX_SOURCE is necessary. */
++/* #undef _POSIX_SOURCE */
++
++/* Define if you have ISC 3.x or 4.x. */
++/* #undef _SYSV3 */
++
++/* Define uintmax_t to `unsigned long' or `unsigned long long' if <inttypes.h>
++ does not exist. */
++/* #undef uintmax_t */
+--- groff-1.18.1.1.orig/src/include/printer.h
++++ groff-1.18.1.1/src/include/printer.h
+@@ -38,6 +38,8 @@
+
+ #include "color.h"
+
++#include "encoding.h"
++
+ struct environment {
+ int fontno;
+ int size;
+@@ -63,6 +65,9 @@
+ printer();
+ virtual ~printer();
+ void load_font(int i, const char *name);
++#ifdef ENABLE_MULTIBYTE
++ void set_wchar_char(wchar c, char *s, int i0, int len, const environment *env, int *widthp = 0);
++#endif
+ void set_ascii_char(unsigned char c, const environment *env,
+ int *widthp = 0);
+ void set_special_char(const char *nm, const environment *env,
+--- groff-1.18.1.1.orig/src/include/font.h
++++ groff-1.18.1.1/src/include/font.h
+@@ -18,11 +18,17 @@
+ with groff; see the file COPYING. If not, write to the Free Software
+ Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */
+
++#include "encoding.h"
++
+ typedef void (*FONT_COMMAND_HANDLER)(const char *, const char *,
+ const char *, int);
+
+ struct font_kern_list;
+ struct font_char_metric;
++#ifdef ENABLE_MULTIBYTE
++struct fontset_list;
++struct font_wchar_metric;
++#endif
+ struct font_widths_cache;
+
+ class font {
+@@ -53,6 +59,9 @@
+ const char *get_special_device_encoding(int index);
+ const char *get_name();
+ const char *get_internal_name();
++#ifdef ENABLE_MULTIBYTE
++ const char *get_subfont_name(int index);
++#endif
+
+ static int scan_papersize(const char *, const char **, double *, double *);
+
+@@ -62,6 +71,9 @@
+ static int load_desc();
+ static int name_to_index(const char *);
+ static int number_to_index(int);
++#ifdef ENABLE_MULTIBYTE
++ static int wchar_index(wchar);
++#endif
+ static FONT_COMMAND_HANDLER
+ set_unknown_desc_command_handler(FONT_COMMAND_HANDLER);
+
+@@ -76,6 +88,11 @@
+ static int spare2;
+ static int sizescale;
+ static int tcommand;
++#ifdef ENABLE_MULTIBYTE
++ // XXX: should be in charinfo or font_wchar_metric?
++ static int lowerwchar;
++ static int wcharkern;
++#endif
+ static int pass_filenames;
+ static int use_charnames_in_special;
+
+@@ -83,13 +100,27 @@
+ static const char **style_table;
+ static const char *family;
+ static int *sizes;
++#ifdef ENABLE_MULTIBYTE
++ // fontsets - sub font list
++ static fontset_list *fontsets;
++ // get fontset for `wc' in current font `fname'
++ static int get_fontset_font(const char *fname, wchar wc);
++ // is the fontno's font load on demand?
++ static int is_on_demand(int fontno);
++#endif
+ private:
+ unsigned ligatures;
+ font_kern_list **kern_hash_table;
+ int space_width;
+- short *ch_index;
++ short *ch_index; /* XXX: this is used unless font_wchar_metric. */
+ int nindices;
+ font_char_metric *ch;
++#ifdef ENABLE_MULTIBYTE
++ // font metric for wchar
++ font_wchar_metric *wch;
++ // get font metric for wchar indexed by c
++ font_wchar_metric *get_font_wchar_metric(int c);
++#endif
+ int ch_used;
+ int ch_size;
+ int special;
+--- groff-1.18.1.1.orig/src/include/driver.h
++++ groff-1.18.1.1/src/include/driver.h
+@@ -27,6 +27,7 @@
+ #include <errno.h>
+ #include <assert.h>
+ #include <math.h>
++#include "encoding.h" // XXX: ukai
+ #include "errarg.h"
+ #include "error.h"
+ #include "font.h"
+--- groff-1.18.1.1.orig/src/libs/libdriver/input.cc
++++ groff-1.18.1.1/src/libs/libdriver/input.cc
+@@ -250,6 +250,7 @@
+
+ #include "driver.h"
+ #include "device.h"
++#include "encoding.h"
+
+ #include <stdlib.h>
+ #include <errno.h>
+@@ -1439,6 +1440,19 @@
+ char *subcmd_str = get_string_arg();
+ char subcmd = subcmd_str[0];
+ switch (subcmd) {
++#ifdef ENABLE_MULTIBYTE
++ case 'e': // x encoding: select encoding
++ {
++ char *str_arg = get_string_arg();
++ if (str_arg == 0)
++ warning("empty argument for `x encoding' command");
++ else {
++ select_input_encoding_handler(str_arg);
++ delete str_arg;
++ }
++ break;
++ }
++#endif
+ case 'f': // x font: mount font
+ {
+ IntArg n = get_integer_arg();
+@@ -1517,7 +1531,7 @@
+ return stopped;
+ }
+
+-
++////////////////////////////////////////////////////////////////
+ /**********************************************************************
+ exported part (by driver.h)
+ **********************************************************************/
+@@ -1625,6 +1639,18 @@
+ if (str_arg[0] != 'i')
+ fatal("the third command must be `x init'");
+ delete str_arg;
++#ifdef ENABLE_MULTIBYTE
++ Char c = get_char();
++ while (is_space_or_tab(c) && c != Char('\n') && c != Char(EOF))
++ c = get_char();
++ unget_char(c);
++ if (c != Char('\n') && c != Char(EOF)) {
++ const char *tmp_encoding = get_string_arg();
++ if (tmp_encoding && *tmp_encoding)
++ select_input_encoding_handler(tmp_encoding);
++ delete tmp_encoding;
++ }
++#endif
+ skip_line_x();
+ }
+
+@@ -1763,6 +1789,18 @@
+ size_t i = 0;
+ while ((c = str_arg[i++]) != '\0') {
+ EnvInt w;
++#ifdef ENABLE_MULTIBYTE
++ if (input_encoding->is_wchar_byte(c)) {
++ int i0 = i - 1;
++ wchar wc = input_encoding->make_wchar(c, (const unsigned char *)str_arg, (int *)&i);
++ if (is_wchar_code(wc)) {
++ /* XXX: singlebyte check? */
++ pr->set_wchar_char(wc, str_arg, i0, i - i0, current_env, &w);
++ } else {
++ pr->set_ascii_char((unsigned char) c, current_env, &w);
++ }
++ } else
++#endif
+ pr->set_ascii_char((unsigned char) c, current_env, &w);
+ current_env->hpos += w;
+ }
+--- groff-1.18.1.1.orig/src/libs/libdriver/printer.cc
++++ groff-1.18.1.1/src/libs/libdriver/printer.cc
+@@ -27,6 +27,7 @@
+ */
+
+ #include "driver.h"
++#include "encoding.h"
+
+ printer *pr = 0;
+
+@@ -138,6 +139,24 @@
+ }
+ }
+
++#ifdef ENABLE_MULTIBYTE
++void printer::set_wchar_char(wchar c, char *s, int i0, int len, const environment *env, int *widthp)
++{
++ unsigned char *buf = new unsigned char[len+1];
++ memset(buf, 0, len+1);
++ memcpy(buf, s+i0, len);
++ font *f;
++ int w;
++ int i = set_char_and_width((const char *)buf, env, &w, &f);
++ if (i != -1) {
++ set_char(c, f, env, w, (const char *)buf);
++ if (widthp)
++ *widthp = w;
++ }
++ delete [] buf;
++}
++#endif
++
+ void printer::set_special_char(const char *nm, const environment *env,
+ int *widthp)
+ {
+--- groff-1.18.1.1.orig/src/libs/libgroff/fontfile.cc
++++ groff-1.18.1.1/src/libs/libgroff/fontfile.cc
+@@ -24,6 +24,7 @@
+ #include <assert.h>
+ #include <stdlib.h>
+ #include <errno.h>
++#include "encoding.h" // XXX: ukai
+ #include "font.h"
+ #include "searchpath.h"
+ #include "device.h"
+@@ -36,6 +37,10 @@
+ int font::res = 0;
+ int font::hor = 1;
+ int font::vert = 1;
++#ifdef ENABLE_MULTIBYTE
++int font::lowerwchar = 0;
++int font::wcharkern = 0;
++#endif
+ int font::unitwidth = 0;
+ int font::paperwidth = 0;
+ int font::paperlength = 0;
+--- groff-1.18.1.1.orig/src/libs/libgroff/font.cc
++++ groff-1.18.1.1/src/libs/libgroff/font.cc
+@@ -25,6 +25,7 @@
+ #include <assert.h>
+ #include <math.h>
+ #include <stdlib.h>
++#include "encoding.h" // XXX: ukai
+ #include "errarg.h"
+ #include "error.h"
+ #include "cset.h"
+@@ -43,8 +44,39 @@
+ int italic_correction;
+ int subscript_correction;
+ char *special_device_coding;
++#ifdef ENABLE_MULTIBYTE
++ char *subfont_name;
++#endif
+ };
+
++#ifdef ENABLE_MULTIBYTE
++struct fontset_list {
++ struct fontset_list *next;
++ char *primary_font_name;
++ int fontset_font;
++ wchar start_code;
++ wchar end_code;
++ int on_demand;
++};
++
++fontset_list *font::fontsets = NULL;
++
++struct font_wchar_metric {
++ struct font_wchar_metric *next;
++ char type;
++ int start_code;
++ int end_code;
++ int width;
++ int height;
++ int depth;
++ int pre_math_space;
++ int italic_correction;
++ int subscript_correction;
++ char *special_device_coding;
++ char *subfont_name;
++};
++#endif
++
+ struct font_kern_list {
+ int i1;
+ int i2;
+@@ -149,7 +181,11 @@
+
+ font::font(const char *s)
+ : ligatures(0), kern_hash_table(0), space_width(0), ch_index(0), nindices(0),
+- ch(0), ch_used(0), ch_size(0), special(0), widths_cache(0)
++ ch(0),
++#ifdef ENABLE_MULTIBYTE
++ wch(0),
++#endif
++ ch_used(0), ch_size(0), special(0), widths_cache(0)
+ {
+ name = new char[strlen(s) + 1];
+ strcpy(name, s);
+@@ -183,6 +219,17 @@
+ widths_cache = widths_cache->next;
+ delete tem;
+ }
++#ifdef ENABLE_MULTIBYTE
++ struct font_wchar_metric *wcp, *nwcp;
++ for (wcp = wch; wcp != NULL; wcp = nwcp) {
++ nwcp = wcp->next;
++ if (wcp->special_device_coding)
++ delete [] wcp->special_device_coding;
++ if (wcp->subfont_name)
++ delete [] wcp->subfont_name;
++ delete wcp;
++ }
++#endif
+ }
+
+ static int scale_round(int n, int x, int y)
+@@ -244,6 +291,11 @@
+
+ int font::contains(int c)
+ {
++#ifdef ENABLE_MULTIBYTE
++ font_wchar_metric *wcp = get_font_wchar_metric(c);
++ if (wcp != NULL)
++ return 1;
++#endif
+ return c >= 0 && c < nindices && ch_index[c] >= 0;
+ }
+
+@@ -266,8 +318,31 @@
+ a_delete width;
+ }
+
++#ifdef ENABLE_MULTIBYTE
++struct font_wchar_metric *
++font::get_font_wchar_metric(int c)
++{
++ /* XXX: c is font index, not char code... */
++ /* XXX: we assume wchar_code == font index code for wchars */
++ /* XXX: does really code conflicts with index? */
++ struct font_wchar_metric *wcp;
++ for (wcp = wch; wcp != NULL; wcp = wcp->next) {
++ if (wcp->start_code <= wchar_code(c) && wchar_code(c) <= wcp->end_code) {
++ return wcp;
++ }
++ }
++ return NULL;
++}
++#endif
++
+ int font::get_width(int c, int point_size)
+ {
++#ifdef ENABLE_MULTIBYTE
++ font_wchar_metric *wcp = get_font_wchar_metric(c);
++ if (wcp != NULL) {
++ return scale(wcp->width, point_size);
++ }
++#endif
+ assert(c >= 0 && c < nindices);
+ int i = ch_index[c];
+ assert(i >= 0);
+@@ -299,30 +374,60 @@
+
+ int font::get_height(int c, int point_size)
+ {
++#ifdef ENABLE_MULTIBYTE
++ font_wchar_metric *wcp = get_font_wchar_metric(c);
++ if (wcp != NULL) {
++ return scale(wcp->height, point_size);
++ }
++#endif
+ assert(c >= 0 && c < nindices && ch_index[c] >= 0);
+ return scale(ch[ch_index[c]].height, point_size);
+ }
+
+ int font::get_depth(int c, int point_size)
+ {
++#ifdef ENABLE_MULTIBYTE
++ font_wchar_metric *wcp = get_font_wchar_metric(c);
++ if (wcp != NULL) {
++ return scale(wcp->depth, point_size);
++ }
++#endif
+ assert(c >= 0 && c < nindices && ch_index[c] >= 0);
+ return scale(ch[ch_index[c]].depth, point_size);
+ }
+
+ int font::get_italic_correction(int c, int point_size)
+ {
++#ifdef ENABLE_MULTIBYTE
++ font_wchar_metric *wcp = get_font_wchar_metric(c);
++ if (wcp != NULL) {
++ return scale(wcp->italic_correction, point_size);
++ }
++#endif
+ assert(c >= 0 && c < nindices && ch_index[c] >= 0);
+ return scale(ch[ch_index[c]].italic_correction, point_size);
+ }
+
+ int font::get_left_italic_correction(int c, int point_size)
+ {
++#ifdef ENABLE_MULTIBYTE
++ font_wchar_metric *wcp = get_font_wchar_metric(c);
++ if (wcp != NULL) {
++ return scale(wcp->pre_math_space, point_size);
++ }
++#endif
+ assert(c >= 0 && c < nindices && ch_index[c] >= 0);
+ return scale(ch[ch_index[c]].pre_math_space, point_size);
+ }
+
+ int font::get_subscript_correction(int c, int point_size)
+ {
++#ifdef ENABLE_MULTIBYTE
++ font_wchar_metric *wcp = get_font_wchar_metric(c);
++ if (wcp != NULL) {
++ return scale(wcp->subscript_correction, point_size);
++ }
++#endif
+ assert(c >= 0 && c < nindices && ch_index[c] >= 0);
+ return scale(ch[ch_index[c]].subscript_correction, point_size);
+ }
+@@ -371,12 +476,24 @@
+
+ int font::get_character_type(int c)
+ {
++#ifdef ENABLE_MULTIBYTE
++ font_wchar_metric *wcp = get_font_wchar_metric(c);
++ if (wcp != NULL) {
++ return wcp->type;
++ }
++#endif
+ assert(c >= 0 && c < nindices && ch_index[c] >= 0);
+ return ch[ch_index[c]].type;
+ }
+
+ int font::get_code(int c)
+ {
++#ifdef ENABLE_MULTIBYTE
++ font_wchar_metric *wcp = get_font_wchar_metric(c);
++ if (wcp != NULL) {
++ return c;
++ }
++#endif
+ assert(c >= 0 && c < nindices && ch_index[c] >= 0);
+ return ch[ch_index[c]].code;
+ }
+@@ -393,10 +510,26 @@
+
+ const char *font::get_special_device_encoding(int c)
+ {
++#ifdef ENABLE_MULTIBYTE
++ font_wchar_metric *wcp = get_font_wchar_metric(c);
++ if (wcp != NULL)
++ return wcp->special_device_coding;
++#endif
+ assert(c >= 0 && c < nindices && ch_index[c] >= 0);
+ return( ch[ch_index[c]].special_device_coding );
+ }
+
++#ifdef ENABLE_MULTIBYTE
++const char *font::get_subfont_name(int c)
++{
++ font_wchar_metric *wcp = get_font_wchar_metric(c);
++ if (wcp != NULL)
++ return wcp->subfont_name;
++ assert(c >= 0 && c < nindices && ch_index[c] >= 0);
++ return ch[ch_index[c]].subfont_name;
++}
++#endif
++
+ void font::alloc_ch_index(int index)
+ {
+ if (nindices == 0) {
+@@ -554,9 +687,11 @@
+ return 0;
+ }
+
++
+ // If the font can't be found, then if not_found is non-NULL, it will be set
+ // to 1 otherwise a message will be printed.
+
++
+ int font::load(int *not_found)
+ {
+ char *path;
+@@ -570,7 +705,7 @@
+ }
+ text_file t(fp, path);
+ t.skip_comments = 1;
+- char *p;
++ char *p = NULL;
+ for (;;) {
+ if (!t.next()) {
+ t.error("missing charset command");
+@@ -681,6 +816,9 @@
+ }
+ else if (strcmp(command, "charset") == 0) {
+ had_charset = 1;
++#ifdef ENABLE_MULTIBYTE
++ int had_range = 0;
++#endif
+ int last_index = -1;
+ for (;;) {
+ if (!t.next()) {
+@@ -695,6 +833,11 @@
+ command = nm;
+ break;
+ }
++#ifdef ENABLE_MULTIBYTE
++ int start_code = 0;
++ int end_code = 0;
++ int nrange = sscanf(nm, "u%X..u%X", &start_code, &end_code);
++#endif
+ if (p[0] == '"') {
+ if (last_index == -1) {
+ t.error("first charset entry is duplicate");
+@@ -711,7 +854,64 @@
+ }
+ copy_entry(index, last_index);
+ }
++#ifdef ENABLE_MULTIBYTE
++ else if (nrange == 2) {
++ had_range = 1;
++ font_wchar_metric *wcp = new font_wchar_metric;
++ wcp->start_code = start_code;
++ wcp->end_code = end_code;
++ wcp->height = 0;
++ wcp->depth = 0;
++ wcp->pre_math_space = 0;
++ wcp->italic_correction = 0;
++ wcp->subscript_correction = 0;
++ int nparms = sscanf(p, "%d,%d,%d,%d,%d,%d",
++ &wcp->width, &wcp->height, &wcp->depth,
++ &wcp->italic_correction,
++ &wcp->pre_math_space,
++ &wcp->subscript_correction);
++ if (nparms < 1) {
++ t.error("bad width for `%1'", nm);
++ return 0;
++ }
++ p = strtok(0, WS);
++ if (p == 0) {
++ t.error("missing character type for `%1'", nm);
++ return 0;
++ }
++ int type;
++ if (sscanf(p, "%d", &type) != 1) {
++ t.error("bad character type for `%1'", nm);
++ return 0;
++ }
++ if (type < 0 || type > 255) {
++ t.error("character type `%1' out of range", type);
++ return 0;
++ }
++ wcp->type = type;
++
++ p = strtok(0, WS);
++ if ((p == 0) || (strcmp(p, "--") == 0)) {
++ wcp->subfont_name = NULL;
++ } else {
++ wcp->subfont_name = new char[strlen(p) + 1];
++ strcpy(wcp->subfont_name, p);
++ }
++
++ p = strtok(0, WS);
++ if ((p == NULL) || (strcmp(p, "--") == 0)) {
++ wcp->special_device_coding = NULL;
++ } else {
++ wcp->special_device_coding = new char[strlen(p) + 1];
++ strcpy(wcp->special_device_coding, p);
++ }
++ wcp->next = wch;
++ wch = wcp;
++ p = NULL;
++ }
++#endif
+ else {
++
+ font_char_metric metric;
+ metric.height = 0;
+ metric.depth = 0;
+@@ -747,6 +947,16 @@
+ t.error("missing code for `%1'", nm);
+ return 0;
+ }
++#ifdef ENABLE_MULTIBYTE
++ char *subp = strchr(p, ':');
++ if (subp) {
++ *subp++ = '\0';
++ metric.subfont_name = new char[strlen(subp) + 1];
++ strcpy(metric.subfont_name, subp);
++ } else {
++ metric.subfont_name = NULL;
++ }
++#endif
+ char *ptr;
+ metric.code = (int)strtol(p, &ptr, 0);
+ if (metric.code == 0 && ptr == p) {
+@@ -777,7 +987,11 @@
+ }
+ }
+ }
++#ifdef ENABLE_MULTIBYTE
++ if (!had_range && last_index == -1) {
++#else
+ if (last_index == -1) {
++#endif
+ t.error("I didn't seem to find any characters");
+ return 0;
+ }
+@@ -811,6 +1025,11 @@
+ { "biggestfont", &font::biggestfont },
+ { "spare2", &font::spare2 },
+ { "sizescale", &font::sizescale }
++#ifdef ENABLE_MULTIBYTE
++ ,
++ { "lowerwchar", &font::lowerwchar },
++ { "wcharkern", &font::wcharkern }
++#endif
+ };
+
+ int font::load_desc()
+@@ -981,6 +1200,67 @@
+ tcommand = 1;
+ else if (strcmp("use_charnames_in_special", p) == 0)
+ use_charnames_in_special = 1;
++#ifdef ENABLE_MULTIBYTE
++ else if (strcmp("fontset", p) == 0) {
++ /* fontset <primary-fontname> <fontname> <code>..<code> [ondemand] */
++ p = strtok(0, WS);
++ if (p == NULL) {
++ t.error("no primary font for fontset");
++ return 0;
++ }
++ char *pfont = NULL;
++ if (strcmp(p, "-") != 0) {
++ pfont = new char[strlen(p)+1];
++ strcpy(pfont, p);
++ }
++ p = strtok(0, WS);
++ if (p == NULL) {
++ t.error("no fontset font for `%1'",
++ pfont ? pfont : "-");
++ return 0;
++ }
++ int fontset_font = 0;
++ for (int i = 0; i < nfonts; i++) {
++ if (strcmp(p, font_name_table[i]) == 0) {
++ fontset_font = i;
++ break;
++ }
++ }
++ if (fontset_font == nfonts) {
++ t.error("fontset font `%1' for font `%2' not defined",
++ p, pfont ? pfont : "-");
++ return 0;
++ }
++ p = strtok(0, WS);
++ if (p == NULL) {
++ t.error("no range for fontset font `%1' for font `%2'",
++ font_name_table[fontset_font],
++ pfont ? pfont : "-");
++ return 0;
++ }
++ wchar start_code = 0;
++ wchar end_code = 0;
++ int nparms = sscanf(p, "%x..%x", &start_code, &end_code);
++ if (nparms != 2) {
++ t.error("invalid range format `%1'", p);
++ return 0;
++ }
++ p = strtok(0, WS);
++ int on_demand = 0;
++ if (p != NULL && strcmp(p, "ondemand") == 0) {
++ on_demand = 1;
++ }
++ /* XXX */
++ fontset_list *fl = new fontset_list;
++ fl->primary_font_name = pfont;
++ fl->fontset_font = fontset_font;
++ fl->start_code = start_code;
++ fl->end_code = end_code;
++ fl->on_demand = on_demand;
++ fl->next = fontsets;
++ fontsets = fl;
++ }
++#endif
+ else if (strcmp("charset", p) == 0)
+ break;
+ else if (unknown_desc_command_handler) {
+@@ -1020,6 +1300,39 @@
+ return 1;
+ }
+
++#ifdef ENABLE_MULTIBYTE
++int
++font::get_fontset_font(const char *fname, wchar wc) {
++ fontset_list *fl;
++ int avail_fontno = -1;
++ wc = wchar_code(wc);
++ for (fl = fontsets; fl != NULL; fl = fl->next) {
++ if (fl->primary_font_name == NULL) {
++ if (fl->start_code <= wc && wc <= fl->end_code) {
++ avail_fontno = fl->fontset_font;
++ }
++ }
++ else if (fname && strcmp(fl->primary_font_name, fname) == 0) {
++ if (fl->start_code <= wc && wc <= fl->end_code) {
++ return fl->fontset_font;
++ }
++ }
++ }
++ return avail_fontno;
++}
++
++int
++font::is_on_demand(int fontno) {
++ fontset_list *fl;
++ for (fl = fontsets; fl != NULL; fl = fl->next) {
++ if (fl->fontset_font == fontno) {
++ return fl->on_demand;
++ }
++ }
++ return 0;
++}
++#endif
++
+ void font::handle_unknown_font_command(const char *, const char *,
+ const char *, int)
+ {
+--- groff-1.18.1.1.orig/src/libs/libgroff/searchpath.cc
++++ groff-1.18.1.1/src/libs/libgroff/searchpath.cc
+@@ -19,6 +19,7 @@
+ with groff; see the file COPYING. If not, write to the Free Software
+ Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */
+
++#include "encoding.h"
+ #include "lib.h"
+
+ #include <stdlib.h>
+--- groff-1.18.1.1.orig/src/libs/libgroff/nametoindex.cc
++++ groff-1.18.1.1/src/libs/libgroff/nametoindex.cc
+@@ -24,6 +24,7 @@
+ #include <ctype.h>
+ #include <assert.h>
+ #include <stdlib.h>
++#include "encoding.h" // XXX: ukai
+ #include "errarg.h"
+ #include "error.h"
+ #include "font.h"
+@@ -37,6 +38,9 @@
+ character_indexer();
+ ~character_indexer();
+ int ascii_char_index(unsigned char);
++#ifdef ENABLE_MULTIBYTE
++ int wchar_index(wchar);
++#endif
+ int named_char_index(const char *);
+ int numbered_char_index(int);
+ private:
+@@ -68,6 +72,13 @@
+ return ascii_index[c];
+ }
+
++#ifdef ENABLE_MULTIBYTE
++int character_indexer::wchar_index(wchar wc)
++{
++ return wc; /* XXX: wchar code == index */
++}
++#endif
++
+ int character_indexer::numbered_char_index(int n)
+ {
+ if (n >= 0 && n < NSMALL) {
+@@ -103,6 +114,30 @@
+ int font::name_to_index(const char *s)
+ {
+ assert(s != 0 && s[0] != '\0' && s[0] != ' ');
++#ifdef ENABLE_MULTIBYTE
++ {
++ int i = 1;
++ wchar wc = input_encoding->make_wchar(s[0], (const unsigned char *)s, &i);
++ /* XXX
++ * if wchar can be represented in single byte (<256),
++ * it should be the same as char<wc>.
++ */
++ if (is_wchar_singlebyte(wc)) {
++ return indexer.ascii_char_index(wchar_singlebyte(wc));
++ }
++ if (is_wchar_code(wc)) {
++ return indexer.wchar_index(wc);
++ }
++ /* XXX: uA1A1 and \xa1a1 are synonyms */
++ if (s[0] == 'u') {
++ char *res;
++ long n = strtol(s + 1, &res, 16);
++ if (res != s + 1 && *res == '\0') {
++ return indexer.wchar_index(n);
++ }
++ }
++ }
++#endif
+ if (s[1] == '\0')
+ return indexer.ascii_char_index(s[0]);
+ /* char128 and \200 are synonyms */
+@@ -115,3 +150,9 @@
+ return indexer.named_char_index(s);
+ }
+
++#ifdef ENABLE_MULTIBYTE
++int font::wchar_index(wchar wc)
++{
++ return indexer.wchar_index(wc);
++}
++#endif
+--- groff-1.18.1.1.orig/src/libs/libgroff/encoding.cc
++++ groff-1.18.1.1/src/libs/libgroff/encoding.cc
+@@ -0,0 +1,441 @@
++// -*- C++ -*-
++/* Copyright (C) 2001 Fumitoshi UKAI <ukai@debian.or.jp>
++
++This file is part of groff.
++
++groff is free software; you can redistribute it and/or modify it under
++the terms of the GNU General Public License as published by the Free
++Software Foundation; either version 2, or (at your option) any later
++version.
++
++groff is distributed in the hope that it will be useful, but WITHOUT ANY
++WARRANTY; without even the implied warranty of MERCHANTABILITY or
++FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
++for more details.
++
++You should have received a copy of the GNU General Public License
++along with this program; if not, write to the Free Software
++Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA */
++
++#include "encoding.h"
++#include "device.h"
++
++#include <string.h>
++#ifdef ENABLE_MULTIBYTE
++#include <locale.h>
++#include <wchar.h>
++#ifdef HAVE_LANGINFO_CODESET
++#include <langinfo.h>
++#else
++#include <stdlib.h>
++#endif
++#endif
++
++class ascii8_handler : public encoding_handler {
++ // encoding handler for 8bit ascii
++ // no multibyte support
++public:
++ ascii8_handler() {}
++ ~ascii8_handler() {}
++
++ const char *name() { return "C"; }; /* ??? */
++
++ inline int is_wchar_byte(unsigned char c) { return 0; }
++ inline wchar make_wchar(unsigned char c0, encoding_istream& eis) {
++ return wchar(c0);
++ }
++ inline int put_wchar(wchar wc, encoding_ostream& eos) {
++ eos.putbyte((unsigned char)wchar_code(wc));
++ return 1;
++ }
++ inline int max_wchar_len() { return 1; };
++
++};
++
++#ifdef ENABLE_MULTIBYTE
++class utf8_handler: public encoding_handler {
++public:
++ utf8_handler() { }
++ ~utf8_handler() { }
++
++ const char *name() { return "UTF-8"; };
++
++ inline int is_wchar_byte(unsigned char c) {
++ return (c >= 0x80);
++ }
++
++ /*
++ 0000 0000-0000 007F 0xxxxxxx
++ 0000 0080-0000 07FF 110xxxxx 10xxxxxx
++ 0000 0800-0000 FFFF 1110xxxx 10xxxxxx 10xxxxxx
++
++ 0001 0000-001F FFFF 11110xxx 10xxxxxx 10xxxxxx 10xxxxxx
++ 0020 0000-03FF FFFF 111110xx 10xxxxxx 10xxxxxx 10xxxxxx 10xxxxxx
++ 0400 0000-7FFF FFFF 1111110x 10xxxxxx ... 10xxxxxx
++ */
++
++ inline wchar make_wchar(unsigned char c0, encoding_istream& eis) {
++ wchar wc = 0;
++ int count = 0;
++ if (! is_wchar_byte(c0)) {
++ return c0;
++ }
++ if ((c0 & 0xFC) == 0xFC) {
++ wc = c0 & 0x01;
++ count = 5;
++ } else if ((c0 & 0xF8) == 0xF8) {
++ wc = c0 & 0x03;
++ count = 4;
++ } else if ((c0 & 0xF0) == 0xF0) {
++ wc = c0 & 0x07;
++ count = 3;
++ } else if ((c0 & 0xE0) == 0xE0) {
++ wc = c0 & 0x0F;
++ count = 2;
++ } else if ((c0 & 0xC0) == 0xC0) {
++ wc = c0 & 0x1F;
++ count = 1;
++ }
++ for (; count > 0; count--) {
++ wc <<= 6;
++ int c1 = eis.getbyte();
++ if (! is_wchar_byte(c1)) {
++ /* illegal utf8 sequence? */
++ }
++ wc |= (c1 & 0x3F);
++ }
++ return -wc; // XXX: negative
++ }
++
++ inline int put_wchar(wchar wc, encoding_ostream& eos) {
++ int count = 0;
++ if (! is_wchar_code(wc)) {
++ eos.putbyte(wc);
++ return 1;
++ }
++ wc = -wc; // XXX: negative -> character code
++
++ if (wc < 0x800) {
++ count = 1; eos.putbyte((wc >> 6) | 0xC0);
++ } else if (wc < 0x10000) {
++ count = 2; eos.putbyte((wc >> 12) | 0xE0);
++ } else if (wc < 0x200000) {
++ count = 3; eos.putbyte((wc >> 18) | 0xF0);
++ } else if (wc < 0x4000000) {
++ count = 4; eos.putbyte((wc >> 24) | 0xf8);
++ } else if (wc <= 0x7fffffff) {
++ count = 5; eos.putbyte((wc >> 30) | 0xFC);
++ }
++ for (int i = 0; i < count; i++) {
++ eos.putbyte(((wc >> 6 * (count - i - 1)) & 0x3f) | 0x80);
++ }
++ return count;
++ }
++ inline int max_wchar_len() { return 6; }; /* XXX 3?*/
++
++};
++
++#define USE_ICONV
++#ifdef USE_ICONV
++#include <iconv.h>
++#include <errno.h>
++
++class iconv_handler : public encoding_handler {
++private:
++ iconv_t icd, ocd;
++ const char *encoding_name;
++ static iconv_handler *ih_header;
++
++public:
++ iconv_handler *next;
++
++ static iconv_handler *new_iconv_handler(const char *ename) {
++ iconv_handler *ip;
++ // if already created, use it.
++ for (ip = ih_header; ip != NULL; ip = ip->next) {
++ if (strcmp(ip->name(), ename) == 0) {
++ return ip;
++ }
++ }
++ // not found, create new one.
++ ip = new iconv_handler(ename);
++ ip->next = ih_header;
++ ih_header = ip;
++ return ip;
++ }
++ iconv_handler(const char *ename) : encoding_name(ename) {
++ // internal code is UCS-2BE
++ icd = iconv_open("UCS-2BE", encoding_name);
++ ocd = iconv_open(encoding_name, "UCS-2BE");
++ };
++ ~iconv_handler() {};
++
++ const char *name() { return encoding_name; };
++
++ inline int is_wchar_byte(unsigned char c) {
++ return (c >= 0x80); /* ??? */
++ }
++
++ inline wchar make_wchar(unsigned char c0, encoding_istream& eis) {
++ wchar wc = 0;
++ char inbuf[8], outbuf[8];
++ char *inp, *outp;
++ size_t inbytesleft, outbytesleft;
++ int i = 0;
++
++ if (! is_wchar_byte(c0)) {
++ return c0;
++ }
++ for (inbuf[i++] = c0; ;inbuf[i++] = eis.getbyte()) {
++ inbytesleft = i;
++ outbytesleft = sizeof(outbuf);
++ inp = inbuf;
++ outp = outbuf;
++ size_t r = iconv(icd, &inp, &inbytesleft, &outp, &outbytesleft);
++ if (r == (size_t)-1) {
++ if (errno == EILSEQ) {
++ /* illegal sequence? */
++ return '?';
++ } else if (errno == EINVAL) {
++ /* incomplete sequence? */
++ continue;
++ } else if (errno == E2BIG) {
++ /* no room to output? */
++ return '?';
++ }
++ }
++ /* ok */
++ /* UCS-2 is 2 bytes */
++ wc = ((outbuf[0] & 0x0ff) << 8) | (outbuf[1] & 0x0ff);
++ return -wc; // XXX: negative
++ }
++ }
++
++
++ inline int put_wchar(wchar wc, encoding_ostream& eos) {
++ char inbuf[4], outbuf[4];
++ char *inp, *outp;
++ size_t inbytesleft, outbytesleft;
++
++ if (!is_wchar_code(wc)) {
++ eos.putbyte(wc & 0x0ff);
++ return 1;
++ }
++ wc = -wc; // XXX: negative -> character code
++
++ inbuf[0] = (wc >> 8) & 0x0ff;
++ inbuf[1] = (wc >> 0) & 0x0ff;
++ inbuf[2] = 0;
++ inbytesleft = 2;
++ outbytesleft = 4;
++ inp = inbuf;
++ outp = outbuf;
++ size_t r = iconv(ocd, &inp, &inbytesleft, &outp, &outbytesleft);
++ if (r == (size_t)-1) {
++ if (errno == EILSEQ) {
++ /* illegal sequence? */;
++ } else if (errno == EINVAL) {
++ /* incomplete sequence? */;
++ } else if (errno == E2BIG) {
++ /* no room to output? */;
++ }
++ eos.putbyte('?');
++ return 1;
++ }
++ char *op = outbuf;
++ int n = 0;
++ for (; op < outp; op++, n++) {
++ eos.putbyte(*op & 0x0ff);
++ }
++ return outp - outbuf;
++ }
++ inline int max_wchar_len() { return 6; }; /* XXX */
++
++};
++#else
++class euc_handler : public encoding_handler {
++ static const int WCTABLE_OFFSET = 0xa1;
++ static const int WCTABLE_SIZE = 94;
++ static const int EUCMASK = 0x8080;
++
++public:
++ euc_handler() {}
++ ~euc_handler() {};
++
++ const char *name() { return "EUC-JP"; };
++
++ inline int is_wchar_byte(unsigned char c) {
++ return (c >= 0xa1 && c <= 0xfe);
++ }
++
++ inline wchar make_wchar(unsigned char c0, encoding_istream& eis) {
++ wchar wc;
++ if (! is_wchar_byte(c0)) {
++ return c0;
++ }
++ int c1 = eis.peekbyte();
++ if (! is_wchar_byte(c1)) {
++ eis.ungetbyte(c1);
++ return c0;
++ }
++ c1 = eis.getbyte();
++ wc = (c0 & 0xff) << 8;
++ wc |= (c1 & 0xff);
++
++ if (wc == 0xa1a1)
++ return ' ';
++ return -wc;
++ }
++
++ inline int put_wchar(wchar wc, encoding_ostream& eos) {
++ if (is_wchar_code(wc)) {
++ wc = -wc;
++ eos.putbyte((wc >> 8) & 0x0ff);
++ eos.putbyte((wc >> 0) & 0x0ff);
++ return 2;
++ } else {
++ eos.putbyte(wc & 0x0ff);
++ return 1;
++ }
++ }
++ inline int max_wchar_len() { return 2; }; /* XXX */
++};
++#endif /* USE_ICONV */
++#endif
++
++static ascii8_handler ascii8;
++#ifdef ENABLE_MULTIBYTE
++static utf8_handler utf8;
++#ifdef USE_ICONV
++iconv_handler *iconv_handler::ih_header = NULL;
++#else
++static euc_handler eucjp;
++#endif
++#endif
++
++encoding_handler *input_encoding = &ascii8;
++encoding_handler *output_encoding = &ascii8;
++
++static void
++new_encoding_handler(encoding_handler **eptr, const char *encoding_name)
++{
++ if (!encoding_name) {
++ *eptr = &ascii8;
++ return;
++ }
++#ifdef ENABLE_MULTIBYTE
++ if (strcmp(encoding_name, "UTF-8") == 0) {
++ *eptr = &utf8;
++ return;
++ }
++#ifdef USE_ICONV
++ if (strcmp(encoding_name, "C") != 0) {
++ *eptr = iconv_handler::new_iconv_handler(encoding_name);
++ return;
++ }
++#else
++ // printf("encoding request: [%s]\n", encoding_name);
++ if (strcmp(encoding_name, "EUC-JP") == 0) {
++ // printf("encoding: [EUC-JP]\n");
++ *eptr = &eucjp;
++ return;
++ }
++#endif
++#endif
++ // default
++ *eptr = &ascii8;
++ return;
++}
++
++encoding_handler *
++select_input_encoding_handler(const char *encoding_name)
++{
++ new_encoding_handler(&input_encoding, encoding_name);
++ return input_encoding;
++}
++
++encoding_handler *
++select_output_encoding_handler(const char *encoding_name)
++{
++ new_encoding_handler(&output_encoding, encoding_name);
++ return output_encoding;
++}
++
++void
++init_encoding_handler()
++{
++#ifdef ENABLE_MULTIBYTE
++ const char *locale, *charset;
++ // groff 1 defines ISO-8859-1 as the input encoding, so this is required
++ // for compatibility. groff 2 will define UTF-8 (or possibly officially
++ // allow it to be switchable?)
++ select_input_encoding_handler("ISO-8859-1");
++ select_output_encoding_handler("C");
++
++ locale = setlocale(LC_ALL, "");
++ if (locale == NULL ||
++ strcmp(locale, "C") == 0 || strcmp(locale, "POSIX") == 0) {
++ return;
++ }
++ /* check LC_CTYPE is C or POSIX */
++ locale = setlocale(LC_CTYPE, NULL);
++ if (strcmp(locale, "C") == 0 || strcmp(locale, "POSIX") == 0) {
++ return;
++ }
++ /* otherwise */
++#if HAVE_LANGINFO_CODESET
++ charset = nl_langinfo(CODESET);
++#else
++ charset = strchr(locale, '.');
++ if (charset)
++ ++charset;
++ else
++ charset = "";
++#endif
++ if (strncmp(locale, "ja", 2) == 0 || strncmp(locale, "zh", 2) == 0 ||
++ (strncmp(locale, "ko", 2) == 0 && strcmp(charset, "UTF-8") == 0)) {
++ select_input_encoding_handler(charset);
++ select_output_encoding_handler(charset);
++ } else if ((!device || strcmp(device, "ascii8") == 0)) {
++ select_input_encoding_handler(NULL);
++ select_output_encoding_handler(NULL);
++ }
++#endif
++ return;
++}
++
++int
++is_wchar_code(wchar wc)
++{
++ return (wc < 0);
++}
++
++int
++is_wchar_singlebyte(wchar wc)
++{
++ return ((-256 < wc) && (wc < 0));
++}
++
++unsigned char
++wchar_singlebyte(wchar wc)
++{
++ if (wc >= 0)
++ return (unsigned char)wc;
++ else
++ return (unsigned char)-wc;
++}
++
++int
++wchar_code(wchar wc)
++{
++ if (wc >= 0)
++ return wc;
++ else
++ return -wc;
++}
++
++int
++make_wchar(int w)
++{
++ return -w;
++}
+--- groff-1.18.1.1.orig/src/libs/libgroff/Makefile.sub
++++ groff-1.18.1.1/src/libs/libgroff/Makefile.sub
+@@ -6,6 +6,7 @@
+ color.$(OBJEXT) \
+ cset.$(OBJEXT) \
+ device.$(OBJEXT) \
++ encoding.$(OBJEXT) \
+ errarg.$(OBJEXT) \
+ error.$(OBJEXT) \
+ fatal.$(OBJEXT) \
+@@ -45,6 +46,7 @@
+ $(srcdir)/color.cc \
+ $(srcdir)/cset.cc \
+ $(srcdir)/device.cc \
++ $(srcdir)/encoding.cc \
+ $(srcdir)/errarg.cc \
+ $(srcdir)/error.cc \
+ $(srcdir)/fatal.cc \
+--- groff-1.18.1.1.orig/src/libs/libgroff/tmpfile.cc
++++ groff-1.18.1.1/src/libs/libgroff/tmpfile.cc
+@@ -24,6 +24,7 @@
+ #include <errno.h>
+ #include <stdlib.h>
+
++#include "encoding.h"
+ #include "posix.h"
+ #include "errarg.h"
+ #include "error.h"
+--- groff-1.18.1.1.orig/src/utils/tfmtodit/tfmtodit.cc
++++ groff-1.18.1.1/src/utils/tfmtodit/tfmtodit.cc
+@@ -650,7 +650,7 @@
+ gives the groff name of the character, `i' gives its index in
+ the encoding, which is filled in later (-1 if it does not appear). */
+
+-struct {
++struct S {
+ const char *ch;
+ int i;
+ } lig_chars[] = {
+@@ -670,7 +670,7 @@
+
+ // Each possible ligature appears in this table.
+
+-struct {
++struct S2 {
+ unsigned char c1, c2, res;
+ const char *ch;
+ } lig_table[] = {
+--- groff-1.18.1.1.orig/src/preproc/eqn/eqn.y
++++ groff-1.18.1.1/src/preproc/eqn/eqn.y
+@@ -21,6 +21,7 @@
+ #include <string.h>
+ #include <stdlib.h>
+
++#include "encoding.h" /* XXX */
+ #include "lib.h"
+ #include "box.h"
+ extern int non_empty_flag;
+--- groff-1.18.1.1.orig/src/preproc/eqn/lex.cc
++++ groff-1.18.1.1/src/preproc/eqn/lex.cc
+@@ -23,6 +23,7 @@
+ #include "eqn_tab.h"
+ #include "stringclass.h"
+ #include "ptable.h"
++#include "encoding.h"
+
+ struct definition {
+ char is_macro;
+@@ -375,6 +376,11 @@
+ lex_error("invalid input character code %1", c);
+ else {
+ line += char(c);
++#ifdef ENABLE_MULTIBYTE
++ if (input_encoding->is_wchar_byte(c)) {
++ line += char(getc(fp));
++ }
++#endif
+ if (c == '\n')
+ break;
+ }
+--- groff-1.18.1.1.orig/src/preproc/eqn/main.cc
++++ groff-1.18.1.1/src/preproc/eqn/main.cc
+@@ -258,6 +258,7 @@
+ program_name = argv[0];
+ static char stderr_buf[BUFSIZ];
+ setbuf(stderr, stderr_buf);
++ init_encoding_handler();
+ int opt;
+ int load_startup_file = 1;
+ static const struct option long_options[] = {
+--- groff-1.18.1.1.orig/src/preproc/eqn/text.cc
++++ groff-1.18.1.1/src/preproc/eqn/text.cc
+@@ -21,13 +21,20 @@
+ #include "eqn.h"
+ #include "pbox.h"
+ #include "ptable.h"
++#include "encoding.h"
+
+ class char_box : public simple_box {
+ unsigned char c;
++#ifdef ENABLE_MULTIBYTE
++ wchar wc;
++#endif
+ char next_is_italic;
+ char prev_is_italic;
+ public:
+ char_box(unsigned char);
++#ifdef ENABLE_MULTIBYTE
++ char_box(unsigned char, wchar);
++#endif
+ void debug_print();
+ void output();
+ int is_char();
+@@ -165,11 +172,22 @@
+ }
+
+ char_box::char_box(unsigned char cc)
+-: c(cc), next_is_italic(0), prev_is_italic(0)
++: c(cc),
++#ifdef ENABLE_MULTIBYTE
++ wc(cc),
++#endif
++ next_is_italic(0), prev_is_italic(0)
+ {
+ spacing_type = char_table[c].spacing_type;
+ }
+
++#ifdef ENABLE_MULTIBYTE
++char_box::char_box(unsigned char cc, wchar wc)
++: c(cc), wc(wc), next_is_italic(0), prev_is_italic(0)
++{
++}
++#endif
++
+ void char_box::hint(unsigned flags)
+ {
+ if (flags & HINT_PREV_IS_ITALIC)
+@@ -188,7 +206,11 @@
+ if (c == '\\')
+ fputs("\\e", stdout);
+ else
++#ifdef ENABLE_MULTIBYTE
++ output_encoding->put_wchar(wc, stdout);
++#else
+ putchar(c);
++#endif
+ if (!next_is_italic)
+ fputs("\\/", stdout);
+ else
+@@ -497,6 +519,14 @@
+ break;
+ default:
+ normal_char:
++#ifdef ENABLE_MULTIBYTE
++ if (input_encoding->is_wchar_byte(c)) {
++ int i = 1;
++ wchar wc = input_encoding->make_wchar(c, (unsigned char *)s, &i);
++ b = new char_box('A', wc); // char_info of wc is same the 'A'.
++ s += i;
++ } else
++#endif
+ b = new char_box(c);
+ break;
+ }
+--- groff-1.18.1.1.orig/src/preproc/eqn/box.cc
++++ groff-1.18.1.1/src/preproc/eqn/box.cc
+@@ -80,7 +80,7 @@
+
+ int nroff = 0; // should we grok ndefine or tdefine?
+
+-struct {
++struct S {
+ const char *name;
+ int *ptr;
+ } param_table[] = {
+--- groff-1.18.1.1.orig/src/preproc/html/pre-html.cc
++++ groff-1.18.1.1/src/preproc/html/pre-html.cc
+@@ -63,6 +63,10 @@
+ #define DEFAULT_IMAGE_RES 100 // number of pixels per inch resolution
+ #define IMAGE_BOARDER_PIXELS 0
+ #define INLINE_LEADER_CHAR '\\'
++#define A4_LENGTH 841890 // taken from devps/Makefile.sub
++#define LETTER_LENGTH 792000 // taken from devps/Makefile.sub
++#define A4_OFFSET 0
++#define LETTER_OFFSET 50 // 50/72 of an inch
+
+ #define TRANSPARENT "-background white -transparent white"
+ #define MIN_ALPHA_BITS 0
+@@ -104,6 +108,7 @@
+ static char *macroset_template= NULL; // image template passed to troff by -D
+ static int troff_arg = 0; // troff arg index
+ static char *image_dir = NULL; // user specified image directory
++static char *gsPaper = NULL; // the paper size that gs must use
+ static int textAlphaBits = MAX_ALPHA_BITS;
+ static int graphicAlphaBits = MAX_ALPHA_BITS;
+ static char *antiAlias = NULL; // antialias arguments we pass to gs.
+@@ -211,6 +216,54 @@
+ }
+
+ /*
++ * get_papersize - returns an integer determining the paper length from
++ * devps/DESC
++ */
++
++static int get_papersize (void)
++{
++ char *pathp;
++ FILE *f;
++ int res;
++ f = font_path.open_file("devps/DESC", &pathp);
++ if (f == 0)
++ fatal("can't open devps/DESC");
++ while (get_line(f)) {
++ int n = sscanf(linebuf, "paperlength %d", &res);
++ if (n >= 1) {
++ fclose(f);
++ return res;
++ }
++ if (!strncmp(linebuf, "papersize", 9)) {
++ double length;
++ char *p = linebuf + 9;
++ while (*p == ' ' || *p == '\t')
++ p++;
++ for (p = strtok(p, " \t"); p; p = strtok(0, " \t")) {
++ if (font::scan_papersize(p, 0, &length, 0)) {
++ fclose(f);
++ return int(length * postscriptRes + 0.5);
++ }
++ }
++ fatal("bad argument to `papersize' keyword in devps/DESC");
++ }
++ }
++ fatal("can't find `papersize' or `paperlength' keyword in devps/DESC");
++ return 0;
++}
++
++/*
++ * determine_vertical_offset - works out the default vertical offset from
++ * the page length
++ */
++
++static void determine_vertical_offset (void)
++{
++ vertical_offset = ((A4_LENGTH-get_papersize())*72)/postscriptRes;
++ gsPaper = "-sPAPERSIZE=a4";
++}
++
++/*
+ * html_system - a wrapper for system()
+ */
+
+@@ -1469,6 +1522,7 @@
+ int ok=1;
+
+ postscriptRes = get_resolution();
++ determine_vertical_offset();
+ i = scanArguments(argc, argv);
+ setupAntiAlias();
+ checkImageDir();
+--- groff-1.18.1.1.orig/src/preproc/grn/hdb.cc
++++ groff-1.18.1.1/src/preproc/grn/hdb.cc
+@@ -115,7 +115,6 @@
+ type = DBGetType(string); /* interpret element type */
+ if (type < 0) { /* no more data */
+ done = TRUE;
+- (void) fclose(file);
+ } else {
+ #ifdef UW_FASTSCAN
+ (void) xscanf(file, &x, &y); /* always one point */
+--- groff-1.18.1.1.orig/src/preproc/refer/command.cc
++++ groff-1.18.1.1/src/preproc/refer/command.cc
+@@ -632,7 +632,7 @@
+ ? means that the previous argument is optional, * means that the
+ previous argument can occur any number of times. */
+
+-struct {
++struct S {
+ const char *name;
+ command_t func;
+ const char *arg_types;
+--- groff-1.18.1.1.orig/src/devices/grotty/grotty.man
++++ groff-1.18.1.1/src/devices/grotty/grotty.man
+@@ -50,7 +50,9 @@
+ command
+ with a
+ .BR \-Tascii ,
+-.B \-Tlatin1
++.BR \-Tascii8 ,
++.BR \-Tlatin1 ,
++.B \-Tnippon
+ or
+ .B \-Tutf8
+ option on ASCII based systems, and with
+@@ -235,8 +237,10 @@
+ .I name
+ is the name of the device, usually
+ .BR ascii ,
++.BR ascii8 ,
+ .BR latin1 ,
+ .BR utf8 ,
++.B nippon
+ or
+ .BR cp1047 .
+ .TP
+@@ -315,10 +319,20 @@
+ device.
+ .
+ .TP
++.B @FONTDIR@/devascii8/DESC
++Device description file for
++.B ascii8
++device.
++.TP
+ .B @FONTDIR@/devlatin1/DESC
+ Device description file for
+ .B latin1
+ device.
++.TP
++.B @FONTDIR@/devnippon/DESC
++Device description file for
++.B nippon
++device.
+ .
+ .TP
+ .BI @FONTDIR@/devlatin1/ F
+--- groff-1.18.1.1.orig/src/devices/grotty/tty.cc
++++ groff-1.18.1.1/src/devices/grotty/tty.cc
+@@ -20,6 +20,7 @@
+
+ #include "driver.h"
+ #include "device.h"
++#include "encoding.h"
+
+ extern "C" const char *Version_string;
+
+@@ -51,8 +52,18 @@
+ HDRAW_MODE = 0x08,
+ CU_MODE = 0x10,
+ COLOR_CHANGE = 0x20
++#ifdef ENABLE_MULTIBYTE
++ , WCHAR_MODE = 0x100
++#endif
+ };
+
++#ifdef ENABLE_MULTIBYTE
++# ifdef putchar
++# undef putchar
++# endif
++#define putchar(wc) output_encoding->put_wchar((wc), stdout)
++#endif
++
+ // Mode to use for bold-underlining.
+ static unsigned char bold_underline_mode = BOLD_MODE|UNDERLINE_MODE;
+
+@@ -89,6 +100,7 @@
+ static tty_font *load_tty_font(const char *);
+ };
+
++
+ tty_font *tty_font::load_tty_font(const char *s)
+ {
+ tty_font *f = new tty_font(s);
+@@ -98,8 +110,26 @@
+ }
+ const char *num = f->get_internal_name();
+ long n;
++#ifdef ENABLE_MULTIBYTE
++ if (num != 0) {
++ n = strtol(num, 0, 0);
++ switch (n) {
++ case 1:
++ f->mode = int(UNDERLINE_MODE);
++ break;
++ case 2:
++ case 5:
++ f->mode = int(BOLD_MODE);
++ break;
++ case 3:
++ f->mode = int(BOLD_MODE|UNDERLINE_MODE);
++ break;
++ }
++ }
++#else
+ if (num != 0 && (n = strtol(num, 0, 0)) != 0)
+ f->mode = int(n & (BOLD_MODE|UNDERLINE_MODE));
++#endif
+ if (!underline_flag)
+ f->mode &= ~UNDERLINE_MODE;
+ if (!bold_flag)
+@@ -135,6 +165,9 @@
+ short hpos;
+ unsigned int code;
+ unsigned char mode;
++#ifdef ENABLE_MULTIBYTE
++ short cols;
++#endif
+ unsigned char back_color_idx;
+ unsigned char fore_color_idx;
+ void *operator new(size_t);
+@@ -184,7 +217,7 @@
+ void make_underline();
+ void make_bold(unsigned int);
+ unsigned char color_to_idx(color *col);
+- void add_char(unsigned int, int, int, color *, color *, unsigned char);
++ void add_char(unsigned int, int, int, color *, color *, font *, unsigned char);
+ public:
+ tty_printer(const char *device);
+ ~tty_printer();
+@@ -193,7 +226,7 @@
+ void special(char *arg, const environment *env, char type);
+ void change_color(const environment *env);
+ void change_fill_color(const environment *env);
+- void put_char(unsigned int);
++ int put_char(unsigned int);
+ void put_color(unsigned char, int);
+ void begin_page(int) { }
+ void end_page(int page_length);
+@@ -203,6 +236,10 @@
+ tty_printer::tty_printer(const char *device) : cached_v(0)
+ {
+ is_utf8 = !strcmp(device, "utf8");
++#ifdef ENABLE_MULTIBYTE
++ if (is_utf8)
++ select_output_encoding_handler("UTF-8");
++#endif
+ tty_colors[0].set_rgb(0, // black
+ 0,
+ 0);
+@@ -242,8 +279,18 @@
+ void tty_printer::make_underline()
+ {
+ if (old_drawing_scheme) {
++#if 0 /* def ENABLE_MULTIBYTE XXX: not necessary? */
++ if ((p->mode & WCHAR_MODE)) {
++ putchar('_'); putchar('_');
++ putchar('\b'); putchar('\b');
++ } else {
++ putchar('_');
++ putchar('\b');
++ }
++#else
+ putchar('_');
+ putchar('\b');
++#endif
+ }
+ else {
+ if (!is_underline) {
+@@ -285,17 +332,25 @@
+ void tty_printer::set_char(int i, font *f, const environment *env,
+ int w, const char *name)
+ {
++#ifdef ENABLE_MULTIBYTE
++ if (is_wchar_code(i)) {
++ add_char(wchar_code(i), env->hpos, env->vpos, env->col, env->fill,
++ f, ((tty_font *)f)->get_mode());
++ return;
++ }
++#endif
+ if (w != font::hor)
+ fatal("width of character not equal to horizontal resolution");
+ add_char(f->get_code(i),
+ env->hpos, env->vpos,
+ env->col, env->fill,
+- ((tty_font *)f)->get_mode());
++ f, ((tty_font *)f)->get_mode());
+ }
+
+ void tty_printer::add_char(unsigned int c,
+ int h, int v,
+ color *fore, color *back,
++ font *curfont,
+ unsigned char mode)
+ {
+ #if 0
+@@ -338,6 +393,16 @@
+ g->code = c;
+ g->fore_color_idx = color_to_idx(fore);
+ g->back_color_idx = color_to_idx(back);
++#ifdef ENABLE_MULTIBYTE
++ if (is_wchar_code(c))
++ mode |= WCHAR_MODE;
++ if (curfont && curfont->contains(c)) {
++ int gw0 = curfont->get_space_width(font::unitwidth);
++ int gw = curfont->get_width(c, font::unitwidth);
++ g->cols = gw/gw0;
++ } else
++ g->cols = 1; /* XXX */
++#endif
+ g->mode = mode;
+
+ // The list will be reversed later. After reversal, it must be in
+@@ -357,7 +422,7 @@
+ void tty_printer::special(char *arg, const environment *env, char type)
+ {
+ if (type == 'u') {
+- add_char(*arg - '0', env->hpos, env->vpos, env->col, env->fill, CU_MODE);
++ add_char(*arg - '0', env->hpos, env->vpos, env->col, env->fill, get_font_from_index(env->fontno), CU_MODE);
+ return;
+ }
+ if (type != 'p')
+@@ -395,12 +460,12 @@
+
+ void tty_printer::change_color(const environment *env)
+ {
+- add_char(0, env->hpos, env->vpos, env->col, env->fill, COLOR_CHANGE);
++ add_char(0, env->hpos, env->vpos, env->col, env->fill, get_font_from_index(env->fontno), COLOR_CHANGE);
+ }
+
+ void tty_printer::change_fill_color(const environment *env)
+ {
+- add_char(0, env->hpos, env->vpos, env->col, env->fill, COLOR_CHANGE);
++ add_char(0, env->hpos, env->vpos, env->col, env->fill, get_font_from_index(env->fontno), COLOR_CHANGE);
+ }
+
+ void tty_printer::draw(int code, int *p, int np, const environment *env)
+@@ -420,7 +485,7 @@
+ len = -len;
+ }
+ while (len >= 0) {
+- add_char('|', env->hpos, v, env->col, env->fill, VDRAW_MODE);
++ add_char('|', env->hpos, v, env->col, env->fill, get_font_from_index(env->fontno), VDRAW_MODE);
+ len -= font::vert;
+ v += font::vert;
+ }
+@@ -434,18 +499,24 @@
+ len = -len;
+ }
+ while (len >= 0) {
+- add_char('-', h, env->vpos, env->col, env->fill, HDRAW_MODE);
++ add_char('-', h, env->vpos, env->col, env->fill, get_font_from_index(env->fontno), HDRAW_MODE);
+ len -= font::hor;
+ h += font::hor;
+ }
+ }
+ }
+
+-void tty_printer::put_char(unsigned int wc)
++int tty_printer::put_char(unsigned int wc)
+ {
++#ifdef ENABLE_MULTIBYTE
++ if (wc >= 0x80) {
++ return output_encoding->put_wchar(make_wchar(wc), stdout);
++ }
++#else
+ if (is_utf8 && wc >= 0x80) {
+ char buf[6 + 1];
+ int count;
++ int len;
+ char *p = buf;
+ if (wc < 0x800)
+ count = 1, *p = (unsigned char)((wc >> 6) | 0xc0);
+@@ -458,14 +529,18 @@
+ else if (wc <= 0x7fffffff)
+ count = 5, *p = (unsigned char)((wc >> 30) | 0xfC);
+ else
+- return;
++ return 0;
++ len = count;
+ do *++p = (unsigned char)(((wc >> (6 * --count)) & 0x3f) | 0x80);
+ while (count > 0);
+ *++p = '\0';
+ putstring(buf);
++ return len;
+ }
++#endif
+ else
+ putchar(wc);
++ return 1;
+ }
+
+ void tty_printer::put_color(unsigned char color_index, int back)
+@@ -629,7 +704,11 @@
+ }
+ }
+ put_char(p->code);
++#ifdef ENABLE_MULTIBYTE
++ hpos += p->cols;
++#else
+ hpos++;
++#endif
+ }
+ if (!old_drawing_scheme
+ && (is_bold || is_underline
+@@ -667,6 +746,7 @@
+ if (getenv("GROFF_NO_SGR"))
+ old_drawing_scheme = 1;
+ setbuf(stderr, stderr_buf);
++ init_encoding_handler();
+ int c;
+ static const struct option long_options[] = {
+ { "help", no_argument, 0, CHAR_MAX + 1 },
+--- groff-1.18.1.1.orig/src/devices/grops/ps.cc
++++ groff-1.18.1.1/src/devices/grops/ps.cc
+@@ -24,6 +24,7 @@
+ #include "cset.h"
+ #include "nonposix.h"
+ #include "paper.h"
++#include "encoding.h"
+
+ #include "ps.h"
+ #include <time.h>
+@@ -193,12 +194,23 @@
+ return *this;
+ }
+
++#ifdef ENABLE_MULTIBYTE
++ps_output &ps_output::put_string(const wchar *s, int n)
++#else
+ ps_output &ps_output::put_string(const char *s, int n)
++#endif
+ {
+ int len = 0;
+ int i;
+ for (i = 0; i < n; i++) {
++#ifdef ENABLE_MULTIBYTE
++ wchar wc = s[i];
++ char c = 0;
++ if (is_wchar_singlebyte(wc))
++ c = wchar_singlebyte(wc);
++#else
+ char c = s[i];
++#endif
+ if (is_ascii(c) && csprint(c)) {
+ if (c == '(' || c == ')' || c == '\\')
+ len += 2;
+@@ -224,8 +236,13 @@
+ putc('\n', fp);
+ col = 0;
+ }
++#ifdef ENABLE_MULTIBYTE
++ int nb = output_encoding->put_wchar(s[i], fp, "%02x");
++ col += nb * 2;
++#else
+ fprintf(fp, "%02x", s[i] & 0377);
+ col += 2;
++#endif
+ }
+ putc('>', fp);
+ col++;
+@@ -396,6 +413,9 @@
+ int encoding_index;
+ char *encoding;
+ char *reencoded_name;
++#ifdef ENABLE_MULTIBYTE
++ char *encodingname;
++#endif
+ ~ps_font();
+ void handle_unknown_font_command(const char *command, const char *arg,
+ const char *filename, int lineno);
+@@ -414,6 +434,9 @@
+
+ ps_font::ps_font(const char *nm)
+ : font(nm), encoding_index(-1), encoding(0), reencoded_name(0)
++#ifdef ENABLE_MULTIBYTE
++ , encodingname(0)
++#endif
+ {
+ }
+
+@@ -421,6 +444,9 @@
+ {
+ a_delete encoding;
+ a_delete reencoded_name;
++#ifdef ENABLE_MULTIBYTE
++ a_delete encodingname;
++#endif
+ }
+
+ void ps_font::handle_unknown_font_command(const char *command, const char *arg,
+@@ -433,6 +459,15 @@
+ else
+ encoding = strsave(arg);
+ }
++#ifdef ENABLE_MULTIBYTE
++ if (strcmp(command, "encodingname") == 0) {
++ if (arg == 0)
++ error_with_file_and_line(filename, lineno,
++ "`encodingname' command requires an argument");
++ else
++ encodingname = strsave(arg);
++ }
++#endif
+ }
+
+ static void handle_unknown_desc_command(const char *command, const char *arg,
+@@ -487,7 +522,11 @@
+ int paper_length;
+ int equalise_spaces;
+ enum { SBUF_SIZE = 256 };
++#ifdef ENABLE_MULTIBYTE
++ wchar sbuf[SBUF_SIZE];
++#else
+ char sbuf[SBUF_SIZE];
++#endif
+ int sbuf_len;
+ int sbuf_start_hpos;
+ int sbuf_vpos;
+@@ -606,7 +645,11 @@
+ {
+ if (i == space_char_index || invis_count > 0)
+ return;
++#ifdef ENABLE_MULTIBYTE
++ wchar code = f->get_code(i);
++#else
+ unsigned char code = f->get_code(i);
++#endif
+ style sty(f, env->size, env->height, env->slant);
+ if (sty.slant != 0) {
+ if (sty.slant > 80 || sty.slant < -80) {
+@@ -763,6 +806,14 @@
+ if (sty == defined_styles[i]) {
+ sprintf(buf, "F%d", i);
+ out.put_symbol(buf);
++#ifdef ENABLE_MULTIBYTE
++ char *encodingname = ((ps_font *)sty.f)->encodingname;
++ if (encodingname != 0) {
++ select_output_encoding_handler(encodingname);
++ } else {
++ select_output_encoding_handler("LATIN1");
++ }
++#endif
+ return;
+ }
+ if (ndefined_styles >= MAX_DEFINED_STYLES)
+@@ -772,6 +823,14 @@
+ const char *psname = sty.f->get_internal_name();
+ if (psname == 0)
+ fatal("no internalname specified for font `%1'", sty.f->get_name());
++#ifdef ENABLE_MULTIBYTE
++ char *encodingname = ((ps_font *)sty.f)->encodingname;
++ if (encodingname != 0) {
++ select_output_encoding_handler(encodingname);
++ } else {
++ select_output_encoding_handler("LATIN1");
++ }
++#endif
+ char *encoding = ((ps_font *)sty.f)->encoding;
+ if (encoding != 0) {
+ char *s = ((ps_font *)sty.f)->reencoded_name;
+@@ -1555,6 +1614,7 @@
+ string env;
+ static char stderr_buf[BUFSIZ];
+ setbuf(stderr, stderr_buf);
++ init_encoding_handler();
+ int c;
+ static const struct option long_options[] = {
+ { "help", no_argument, 0, CHAR_MAX + 1 },
+--- groff-1.18.1.1.orig/src/devices/grops/ps.h
++++ groff-1.18.1.1/src/devices/grops/ps.h
+@@ -18,10 +18,16 @@
+ with groff; see the file COPYING. If not, write to the Free Software
+ Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */
+
++#include "encoding.h" // XXX
++
+ class ps_output {
+ public:
+ ps_output(FILE *, int max_line_length);
++#ifdef ENABLE_MULTIBYTE
++ ps_output &put_string(const wchar *, int);
++#else
+ ps_output &put_string(const char *, int);
++#endif
+ ps_output &put_number(int);
+ ps_output &put_fix_number(int);
+ ps_output &put_float(double);
+--- groff-1.18.1.1.orig/src/devices/grohtml/html.h
++++ groff-1.18.1.1/src/devices/grohtml/html.h
+@@ -49,6 +49,9 @@
+ class simple_output {
+ public:
+ simple_output(FILE *, int max_line_length);
++#ifdef ENABLE_MULTIBYTE
++ simple_output &put_string(const wchar *, int);
++#endif
+ simple_output &put_string(const char *, int);
+ simple_output &put_string(const char *s);
+ simple_output &put_string(const string &s);
+--- groff-1.18.1.1.orig/src/devices/grohtml/post-html.cc
++++ groff-1.18.1.1/src/devices/grohtml/post-html.cc
+@@ -29,6 +29,7 @@
+ #include "html.h"
+ #include "html-text.h"
+ #include "html-table.h"
++#include "encoding.h" // XXX: ukai
+
+ #include <time.h>
+
+@@ -280,6 +281,9 @@
+ public:
+ char_buffer();
+ ~char_buffer();
++#ifdef ENABLE_MULTIBYTE
++ char *add_string(const wchar *, unsigned int);
++#endif
+ char *add_string(const char *, unsigned int);
+ char *add_string(const string &);
+ private:
+@@ -301,6 +305,43 @@
+ }
+ }
+
++#ifdef ENABLE_MULTIBYTE
++char *char_buffer::add_string (const wchar *s, unsigned int length)
++{
++ int i=0;
++ unsigned int old_used;
++
++ if (tail == 0) {
++ tail = new char_block;
++ head = tail;
++ } else {
++ if (tail->used + length*2 + 1 > char_block::SIZE) {
++ tail->next = new char_block;
++ tail = tail->next;
++ }
++ }
++ // at this point we have a tail which is ready for the string.
++ if (tail->used + length*2 + 1 > char_block::SIZE) {
++ fatal("need to increase char_block::SIZE");
++ }
++
++ old_used = tail->used;
++ do {
++ length -= output_encoding->put_wchar(s[i], (unsigned char *)tail->buffer, &tail->used, length*2);
++ i++;
++ } while (length>0);
++
++ // add terminating nul character
++
++ tail->buffer[tail->used] = '\0';
++ tail->used++;
++
++ // and return start of new string
++
++ return( &tail->buffer[old_used] );
++}
++#endif
++
+ char *char_buffer::add_string (const char *s, unsigned int length)
+ {
+ int i=0;
+@@ -320,6 +361,7 @@
+ }
+
+ old_used = tail->used;
++ /* XXX: encoding - ukai */
+ do {
+ tail->buffer[tail->used] = s[i];
+ tail->used++;
+@@ -1917,6 +1959,15 @@
+
+ current_paragraph->do_para(&html, "", indentation, pageoffset, linelength);
+ }
++#if 0 // def ENABLE_MULTIBYTE /* XXX */
++ else if (strcmp(fontname, "M") == 0) {
++ current_paragraph->done_bold();
++ current_paragraph->done_italic();
++ current_paragraph->done_tt();
++ } else if (strcmp(fontname, "G") == 0) {
++ current_paragraph->do_bold();
++ }
++#endif
+ }
+
+ void html_printer::determine_header_level (int level)
+@@ -2948,6 +2999,11 @@
+ current_paragraph->done_italic();
+ current_paragraph->done_tt();
+ }
++#ifdef ENABLE_MULTIBYTE
++ else if (strcmp(fontname, "G") == 0) {
++ current_paragraph->done_bold();
++ }
++#endif
+ }
+
+ /*
+@@ -2992,6 +3048,15 @@
+ current_paragraph->do_italic();
+ current_paragraph->do_bold();
+ }
++#ifdef ENABLE_MULTIBYTE
++ else if (strcmp(fontname, "M") == 0) {
++ current_paragraph->done_bold();
++ current_paragraph->done_italic();
++ current_paragraph->done_tt();
++ } else if (strcmp(fontname, "G") == 0) {
++ current_paragraph->do_bold();
++ }
++#endif
+ }
+
+ /*
+@@ -3331,7 +3396,23 @@
+
+ last_sbuf_length = sbuf.length();
+ if (html_glyph == NULL)
++#ifdef ENABLE_MULTIBYTE
++ {
++ if (is_wchar_code(code)) {
++ int mblen = output_encoding->max_wchar_len();
++ unsigned char *wbuf = new unsigned char[mblen];
++ int i = 0, j = 0;
++ output_encoding->put_wchar(code, wbuf, &j, mblen);
++ for (i = 0; i < j; i++) {
++ sbuf += wbuf[i];
++ }
++ }
++ else
++ sbuf += ((char)code);
++ }
++#else
+ sbuf += ((char)code);
++#endif
+ else
+ sbuf += html_glyph;
+ }
+@@ -3445,12 +3526,12 @@
+ return;
+
+ flush_sbuf();
++ sbuf_style = sty; /* XXX? */
+ add_to_sbuf(i, name);
+ sbuf_end_hpos = env->hpos + w;
+ sbuf_start_hpos = env->hpos;
+ sbuf_prev_hpos = env->hpos;
+ sbuf_vpos = env->vpos;
+- sbuf_style = sty;
+ sbuf_kern = 0;
+ }
+
+@@ -3659,6 +3740,7 @@
+ program_name = argv[0];
+ static char stderr_buf[BUFSIZ];
+ setbuf(stderr, stderr_buf);
++ init_encoding_handler();
+ int c;
+ static const struct option long_options[] = {
+ { "help", no_argument, 0, CHAR_MAX + 1 },
+--- groff-1.18.1.1.orig/src/devices/grodvi/dvi.cc
++++ groff-1.18.1.1/src/devices/grodvi/dvi.cc
+@@ -21,6 +21,7 @@
+
+ #include "driver.h"
+ #include "nonposix.h"
++#include "encoding.h"
+
+ extern "C" const char *Version_string;
+
+@@ -104,6 +105,9 @@
+ struct output_font {
+ dvi_font *f;
+ int point_size;
++#ifdef ENABLE_MULTIBYTE
++ const char *sf; // subfont name
++#endif
+ output_font() : f(0) { }
+ };
+
+@@ -121,6 +125,9 @@
+ output_font output_font_table[FONTS_MAX];
+ font *cur_font;
+ int cur_point_size;
++#ifdef ENABLE_MULTIBYTE
++ const char *cur_subfont;
++#endif
+ color cur_color;
+ int pushed;
+ int pushed_h;
+@@ -341,9 +348,18 @@
+ if (*env->col != cur_color)
+ set_color(env->col);
+ int code = f->get_code(index);
++#ifdef ENABLE_MULTIBYTE
++ const char *sf = f->get_subfont_name(index);
++ if (env->size != cur_point_size || f != cur_font ||
++ (sf != cur_subfont && strcmp(sf, cur_subfont))) {
++#else
+ if (env->size != cur_point_size || f != cur_font) {
++#endif
+ cur_font = f;
+ cur_point_size = env->size;
++#ifdef ENABLE_MULTIBYTE
++ cur_subfont = sf;
++#endif
+ int i;
+ for (i = 0;; i++) {
+ if (i >= FONTS_MAX) {
+@@ -352,9 +368,16 @@
+ if (output_font_table[i].f == 0) {
+ output_font_table[i].f = (dvi_font *)cur_font;
+ output_font_table[i].point_size = cur_point_size;
++#ifdef ENABLE_MULTIBYTE
++ output_font_table[i].sf = cur_subfont;
++#endif
+ define_font(i);
+ }
+ if (output_font_table[i].f == cur_font
++#ifdef ENABLE_MULTIBYTE
++ && (output_font_table[i].sf == cur_subfont ||
++ strcmp(output_font_table[i].sf, cur_subfont) == 0)
++#endif
+ && output_font_table[i].point_size == cur_point_size)
+ break;
+ }
+@@ -398,7 +421,13 @@
+ out4(f->checksum);
+ out4(output_font_table[i].point_size*RES_7227);
+ out4(int((double(f->design_size)/(1<<20))*RES_7227*100 + .5));
++#ifdef ENABLE_MULTIBYTE
++ const char *nm;
++ if (!(nm = output_font_table[i].sf))
++ nm = f->get_internal_name();
++#else
+ const char *nm = f->get_internal_name();
++#endif
+ out1(0);
+ out_string(nm);
+ }
+@@ -889,6 +918,7 @@
+ program_name = argv[0];
+ static char stderr_buf[BUFSIZ];
+ setbuf(stderr, stderr_buf);
++ init_encoding_handler();
+ int c;
+ static const struct option long_options[] = {
+ { "help", no_argument, 0, CHAR_MAX + 1 },
+--- groff-1.18.1.1.orig/src/xditview/encoding.h
++++ groff-1.18.1.1/src/xditview/encoding.h
+@@ -0,0 +1,31 @@
++// -*- C++ -*-
++/* Copyright (c) 2001 Fumitoshi UKAI <ukai@debian.or.jp>
++
++This file is part of groff.
++
++groff is free software; you can redistribute it and/or modify it under
++the terms of the GNU General Public License as published by the Free
++Software Foundation; either version 2, or (at your option) any later
++version.
++
++groff is distributed in the hope that it will be useful, but WITHOUT ANY
++WARRANTY; without even the implied warranty of MERCHANTABILITY or
++FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
++for more details.
++
++You should have received a copy of the GNU General Public License
++along with this program; if not, write to the Free Software
++Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA */
++
++#ifndef ENCODING_H
++#define ENCODING_H
++
++#include "config.h"
++
++#ifdef ENABLE_MULTIBYTE
++typedef unsigned int wchar;
++#else
++typedef char wchar;
++#endif
++
++#endif
+--- groff-1.18.1.1.orig/src/xditview/lex.c
++++ groff-1.18.1.1/src/xditview/lex.c
+@@ -2,8 +2,10 @@
+ #include <X11/IntrinsicP.h>
+ #include <X11/StringDefs.h>
+ #include <stdio.h>
++#include "config.h"
+ #include "DviP.h"
+
++int
+ DviGetAndPut(dw, cp)
+ DviWidget dw;
+ int *cp;
+@@ -67,6 +69,7 @@
+ return Buffer;
+ }
+
++int
+ GetNumber(dw)
+ DviWidget dw;
+ {
+@@ -90,6 +93,98 @@
+ DviUngetC(dw, c);
+ return i;
+ }
++
++#ifdef ENABLE_MULTIBYTE
++#include <locale.h>
++#include <langinfo.h>
++#include <iconv.h>
++#include <errno.h>
++
++static iconv_t icd;
++void
++DviInitLocale()
++{
++ char *enc;
++ setlocale(LC_ALL, "");
++ enc = nl_langinfo(CODESET);
++ icd = iconv_open("UCS-2BE", enc);
++}
++
++int
++DviGetCharacter(dw, cp)
++ DviWidget dw;
++ char *cp;
++{
++ char inbuf[8];
++ char outbuf[8];
++ char *inp, *outp;
++ size_t inbytesleft, outbytesleft = 8;
++ int i = 0;
++ int j;
++ int wc = 0;
++ int c;
++ size_t r;
++
++ while (wc == 0) {
++ DviGetC(dw, &c);
++ if (c == EOF)
++ return EOF;
++ inbuf[i++] = c;
++ inbytesleft = i;
++ outbytesleft = BUFSIZ;
++ inp = inbuf;
++ outp = outbuf;
++ r = iconv(icd, &inp, &inbytesleft, &outp, &outbytesleft);
++ if (r == (size_t)-1) {
++ if (errno == EILSEQ) {
++ /* illegal sequence */
++ } else if (errno == EINVAL) {
++ /* incomplete sequence */
++ continue;
++ } else if (errno == E2BIG) {
++ /* no room to output? */
++
++ }
++ DviUngetC(dw, c);
++ }
++ /* ok - pass inbuf to cp */
++ for (j = 0; j < i; j++) {
++ cp[j] = inbuf[j];
++ }
++ cp[j] = '\0';
++ return i;
++ }
++ /* NOT REACHED */
++}
++
++int
++DviWCharP(char *name, int *wc)
++{
++ char outbuf[BUFSIZ];
++ char *inp, *outp;
++ int inbytesleft, outbytesleft;
++ size_t r;
++ *wc = 0;
++ inp = name;
++ inbytesleft = strlen(name);
++ outp = outbuf;
++ outbytesleft = sizeof(outbuf)-1;
++ r = iconv(icd, &inp, &inbytesleft, &outp, &outbytesleft);
++ if (r < 0) {
++ return 0;
++ }
++ /* UCS-2 check */
++ if (outbuf + 2 != outp) {
++ return 0;
++ }
++ for (inp = outbuf; inp < outp; inp++) {
++ *wc <<= 8;
++ *wc |= (*inp) & 0x0ff;
++ }
++ return 1;
++}
++
++#endif
+
+ /*
+ Local Variables:
+--- groff-1.18.1.1.orig/src/xditview/Dvi.c
++++ groff-1.18.1.1/src/xditview/Dvi.c
+@@ -4,6 +4,8 @@
+ #endif /* lint */
+ #endif /* SABER */
+
++#include "config.h"
++
+ /*
+ * Dvi.c - Dvi display widget
+ *
+@@ -49,6 +51,8 @@
+ NBI -adobe-new century schoolbook-bold-i-normal--*-100-*-*-*-*-iso8859-1\n\
+ S -adobe-symbol-medium-r-normal--*-100-*-*-*-*-adobe-fontspecific\n\
+ SS -adobe-symbol-medium-r-normal--*-100-*-*-*-*-adobe-fontspecific\n\
++M -misc-fixed-medium-r-normal--*-100-*-*-*-*-jisx0208.1983-0\n\
++G -misc-fixed-medium-r-normal--*-100-*-*-*-*-jisx0208.1983-0\
+ ";
+
+ #define offset(field) XtOffset(DviWidget, field)
+@@ -94,6 +98,20 @@
+
+ static void SaveToFile ();
+
++/* font.c */
++extern void ParseFontMap();
++extern void DestroyFontMap();
++extern void ForgetFonts();
++
++/* page.c */
++extern void DestroyFileMap();
++extern int SearchPagePosition();
++extern void FileSeek();
++extern void ForgetPagePositions();
++
++/* parse.c */
++extern int ParseInput();
++
+ DviClassRec dviClassRec = {
+ {
+ &widgetClassRec, /* superclass */
+@@ -406,6 +424,7 @@
+ return ret;
+ }
+
++void
+ SetDevice (dw, name)
+ DviWidget dw;
+ char *name;
+@@ -559,6 +578,9 @@
+ DviWidgetClass super = (DviWidgetClass) wc->core_class.superclass;
+ if (wc->command_class.save == InheritSaveToFile)
+ wc->command_class.save = super->command_class.save;
++#ifdef ENABLE_MULTIBYTE
++ DviInitLocale();
++#endif
+ }
+
+ /*
+--- groff-1.18.1.1.orig/src/xditview/parse.c
++++ groff-1.18.1.1/src/xditview/parse.c
+@@ -9,15 +9,49 @@
+ #include <X11/StringDefs.h>
+ #include <stdio.h>
+ #include <ctype.h>
++#include "config.h"
+ #include "DviP.h"
++#include "encoding.h"
+
+ static int StopSeen = 0;
+-static ParseDrawFunction(), ParseDeviceControl();
+-static push_env(), pop_env();
++static void ParseDrawFunction(), ParseDeviceControl();
++static void push_env(), pop_env();
++
++/* draw.c */
++extern int PutCharacter();
++extern int PutNumberedCharacter();
++extern void HorizontalGoto();
++extern void Word();
++extern void VerticalGoto();
++extern void VerticalMove();
++extern void FlushCharCache();
++extern void Newline();
++extern void DrawLine();
++extern void DrawCircle();
++extern void DrawFilledCircle();
++extern void DrawEllipse();
++extern void DrawFilledEllipse();
++extern void DrawArc();
++extern void DrawPolygon();
++extern void DrawFilledPolygon();
++extern void DrawSpline();
++
++/* Dvi.c */
++extern void SetDevice();
++
++/* page.c */
++extern void RememberPagePosition();
++
++/* font.c */
++extern void SetFontPosition();
++
++/* lex.c */
++extern int GetNumber();
+
+ #define HorizontalMove(dw, delta) ((dw)->dvi.state->x += (delta))
+
+
++int
+ ParseInput(dw)
+ register DviWidget dw;
+ {
+@@ -57,11 +91,17 @@
+ DviGetC(dw,&otherc)-'0');
+ /* fall through */
+ case 'c': /* single ascii character */
++#ifdef ENABLE_MULTIBYTE
++ DviGetCharacter(dw, Buffer);
++ if (Buffer[0] == ' ')
++ break;
++#else
+ DviGetC(dw,&c);
+ if (c == ' ')
+ break;
+ Buffer[0] = c;
+ Buffer[1] = '\0';
++#endif
+ (void) PutCharacter (dw, Buffer);
+ break;
+ case 'C':
+@@ -69,10 +109,15 @@
+ (void) PutCharacter (dw, Buffer);
+ break;
+ case 't':
++#ifdef ENABLE_MULTIBYTE
++ while (DviGetCharacter(dw, Buffer) != EOF
++ && Buffer[0] != ' ' && Buffer[0] != '\n') {
++#else
+ Buffer[1] = '\0';
+ while (DviGetC (dw, &c) != EOF
+ && c != ' ' && c != '\n') {
+ Buffer[0] = c;
++#endif
+ HorizontalMove (dw, PutCharacter (dw, Buffer));
+ }
+ break;
+@@ -158,7 +203,7 @@
+ }
+ }
+
+-static
++static void
+ push_env(dw)
+ DviWidget dw;
+ {
+@@ -177,7 +222,7 @@
+ dw->dvi.state = new;
+ }
+
+-static
++static void
+ pop_env(dw)
+ DviWidget dw;
+ {
+@@ -188,7 +233,7 @@
+ XtFree ((char *) old);
+ }
+
+-static
++static void
+ InitTypesetter (dw)
+ DviWidget dw;
+ {
+@@ -200,7 +245,7 @@
+
+ #define DRAW_ARGS_MAX 128
+
+-static
++static void
+ ParseDrawFunction(dw, buf)
+ DviWidget dw;
+ char *buf;
+@@ -284,13 +329,12 @@
+ }
+ }
+
+-static
++static void
+ ParseDeviceControl(dw) /* Parse the x commands */
+ DviWidget dw;
+ {
+ char str[20], str1[50];
+ int c, n;
+- extern int LastPage, CurrentPage;
+
+ GetWord (dw, str, 20);
+ switch (str[0]) { /* crude for now */
+--- groff-1.18.1.1.orig/src/xditview/DviChar.c
++++ groff-1.18.1.1/src/xditview/DviChar.c
+@@ -5,7 +5,10 @@
+ * font indexes and back
+ */
+
+-#include "DviChar.h"
++#include <stdlib.h>
++#include "config.h"
++#include "DviChar.h"
++#include "encoding.h"
+
+ extern char *xmalloc();
+
+@@ -21,7 +24,7 @@
+ static int standard_maps_loaded = 0;
+ static void load_standard_maps ();
+ static int hash_name ();
+-static dispose_hash(), compute_hash();
++static void dispose_hash(), compute_hash();
+
+ DviCharNameMap *
+ DviFindMap (encoding)
+@@ -58,7 +61,7 @@
+ compute_hash (map);
+ }
+
+-static
++static void
+ dispose_hash (map)
+ DviCharNameMap *map;
+ {
+@@ -88,7 +91,7 @@
+ return i;
+ }
+
+-static
++static void
+ compute_hash (map)
+ DviCharNameMap *map;
+ {
+@@ -120,7 +123,10 @@
+ {
+ int i;
+ DviCharNameHash *h;
+-
++#ifdef ENABLE_MULTIBYTE
++ if (map->char_index)
++ return (*map->char_index)(map, name);
++#endif
+ i = hash_name (name) % DVI_HASH_SIZE;
+ for (h = map->buckets[i]; h; h=h->next)
+ if (!strcmp (h->name, name))
+@@ -128,9 +134,47 @@
+ return -1;
+ }
+
++#ifdef ENABLE_MULTIBYTE
++#include <X11/Xlib.h>
++void
++DviChar2XChar2b(int c, XChar2b *xc)
++{
++ /* XXX: can we assume 'c' is EUC-JP ? */
++ xc->byte1 = (c >> 8) & 0x7f;
++ xc->byte2 = (c) &0x7f;
++ return;
++}
++
++int
++DviCharIndexJISX0208_1983(map, name)
++ DviCharNameMap *map;
++ char *name;
++{
++ /* XXX: can we assume name points EUC-JP chars? */
++ unsigned char ub = *name, lb = *(name + 1);
++ int wc;
++ wc = (name[0] & 0xff) << 8;
++ wc |= (name[1] & 0xff);
++ return(wc);
++}
++
++static DviCharNameMap JISX0208_1983_0_map = {
++ "jisx0208.1983-0",
++ 0,
++ DviChar2XChar2b,
++ DviCharIndexJISX0208_1983,
++{
++{ "DummyEntry", /* 0 */},
++}};
++#endif
++
+ static DviCharNameMap ISO8859_1_map = {
+ "iso8859-1",
+ 0,
++#ifdef ENABLE_MULTIBYTE
++ 0,
++ 0,
++#endif
+ {
+ { 0, /* 0 */},
+ { 0, /* 1 */},
+@@ -393,6 +437,10 @@
+ static DviCharNameMap Adobe_Symbol_map = {
+ "adobe-fontspecific",
+ 1,
++#ifdef ENABLE_MULTIBYTE
++ 0,
++ 0,
++#endif
+ {
+ { 0, /* 0 */},
+ { 0, /* 1 */},
+@@ -659,4 +707,7 @@
+ standard_maps_loaded = 1;
+ DviRegisterMap (&ISO8859_1_map);
+ DviRegisterMap (&Adobe_Symbol_map);
++#ifdef ENABLE_MULTIBYTE
++ DviRegisterMap (&JISX0208_1983_0_map);
++#endif
+ }
+--- groff-1.18.1.1.orig/src/xditview/config.h
++++ groff-1.18.1.1/src/xditview/config.h
+@@ -0,0 +1,4 @@
++#ifndef _config_h
++#include "../include/config.h"
++#define _config_h
++#endif
+--- groff-1.18.1.1.orig/src/xditview/XFontName.c
++++ groff-1.18.1.1/src/xditview/XFontName.c
+@@ -225,6 +225,7 @@
+ return True;
+ }
+
++Bool
+ XCopyFontName (name1, name2, fontNameAttributes)
+ XFontName *name1, *name2;
+ unsigned int fontNameAttributes;
+--- groff-1.18.1.1.orig/src/xditview/GXditview.ad
++++ groff-1.18.1.1/src/xditview/GXditview.ad
+@@ -55,3 +55,25 @@
+ GXditview.promptShell.promptDialog.cancel.label: Cancel
+ GXditview.promptShell.promptDialog.cancel.translations: #override \
+ <BtnUp>: Cancel() unset()
++
++GXditview*fontMap: \
++TR -adobe-times-medium-r-normal--*-100-*-*-*-*-iso8859-1\n\
++TI -adobe-times-medium-i-normal--*-100-*-*-*-*-iso8859-1\n\
++TB -adobe-times-bold-r-normal--*-100-*-*-*-*-iso8859-1\n\
++TBI -adobe-times-bold-i-normal--*-100-*-*-*-*-iso8859-1\n\
++CR -adobe-courier-medium-r-normal--*-100-*-*-*-*-iso8859-1\n\
++CI -adobe-courier-medium-o-normal--*-100-*-*-*-*-iso8859-1\n\
++CB -adobe-courier-bold-r-normal--*-100-*-*-*-*-iso8859-1\n\
++CBI -adobe-courier-bold-o-normal--*-100-*-*-*-*-iso8859-1\n\
++HR -adobe-helvetica-medium-r-normal--*-100-*-*-*-*-iso8859-1\n\
++HI -adobe-helvetica-medium-o-normal--*-100-*-*-*-*-iso8859-1\n\
++HB -adobe-helvetica-bold-r-normal--*-100-*-*-*-*-iso8859-1\n\
++HBI -adobe-helvetica-bold-o-normal--*-100-*-*-*-*-iso8859-1\n\
++NR -adobe-new century schoolbook-medium-r-normal--*-100-*-*-*-*-iso8859-1\n\
++NI -adobe-new century schoolbook-medium-i-normal--*-100-*-*-*-*-iso8859-1\n\
++NB -adobe-new century schoolbook-bold-r-normal--*-100-*-*-*-*-iso8859-1\n\
++NBI -adobe-new century schoolbook-bold-i-normal--*-100-*-*-*-*-iso8859-1\n\
++S -adobe-symbol-medium-r-normal--*-100-*-*-*-*-adobe-fontspecific\n\
++SS -adobe-symbol-medium-r-normal--*-100-*-*-*-*-adobe-fontspecific\n\
++M -misc-fixed-medium-r-normal--*-100-*-*-*-*-jisx0208.1983-0\n\
++G -misc-fixed-medium-r-normal--*-100-*-*-*-*-jisx0208.1983-0
+--- groff-1.18.1.1.orig/src/xditview/GXditview-ad.h
++++ groff-1.18.1.1/src/xditview/GXditview-ad.h
+@@ -50,3 +50,24 @@
+ "GXditview.promptShell.promptDialog.cancel.label: Cancel",
+ "GXditview.promptShell.promptDialog.cancel.translations: #override \
+ <BtnUp>: Cancel() unset()",
++"GXditview*fontMap: \
++TR -adobe-times-medium-r-normal--*-100-*-*-*-*-iso8859-1\\n\
++TI -adobe-times-medium-i-normal--*-100-*-*-*-*-iso8859-1\\n\
++TB -adobe-times-bold-r-normal--*-100-*-*-*-*-iso8859-1\\n\
++TBI -adobe-times-bold-i-normal--*-100-*-*-*-*-iso8859-1\\n\
++CR -adobe-courier-medium-r-normal--*-100-*-*-*-*-iso8859-1\\n\
++CI -adobe-courier-medium-o-normal--*-100-*-*-*-*-iso8859-1\\n\
++CB -adobe-courier-bold-r-normal--*-100-*-*-*-*-iso8859-1\\n\
++CBI -adobe-courier-bold-o-normal--*-100-*-*-*-*-iso8859-1\\n\
++HR -adobe-helvetica-medium-r-normal--*-100-*-*-*-*-iso8859-1\\n\
++HI -adobe-helvetica-medium-o-normal--*-100-*-*-*-*-iso8859-1\\n\
++HB -adobe-helvetica-bold-r-normal--*-100-*-*-*-*-iso8859-1\\n\
++HBI -adobe-helvetica-bold-o-normal--*-100-*-*-*-*-iso8859-1\\n\
++NR -adobe-new century schoolbook-medium-r-normal--*-100-*-*-*-*-iso8859-1\\n\
++NI -adobe-new century schoolbook-medium-i-normal--*-100-*-*-*-*-iso8859-1\\n\
++NB -adobe-new century schoolbook-bold-r-normal--*-100-*-*-*-*-iso8859-1\\n\
++NBI -adobe-new century schoolbook-bold-i-normal--*-100-*-*-*-*-iso8859-1\\n\
++S -adobe-symbol-medium-r-normal--*-100-*-*-*-*-adobe-fontspecific\\n\
++SS -adobe-symbol-medium-r-normal--*-100-*-*-*-*-adobe-fontspecific\\n\
++M -misc-fixed-medium-r-normal--*-100-*-*-*-*-jisx0208.1983-0\\n\
++G -misc-fixed-medium-r-normal--*-100-*-*-*-*-jisx0208.1983-0",
+--- groff-1.18.1.1.orig/src/xditview/DviP.h
++++ groff-1.18.1.1/src/xditview/DviP.h
+@@ -8,6 +8,7 @@
+
+ #ifndef _XtDviP_h
+ #define _XtDviP_h
++#include "config.h"
+
+ #include "Dvi.h"
+ #include "DviChar.h"
+@@ -89,9 +90,17 @@
+ #define DVI_CHAR_CACHE_SIZE 1024
+
+ typedef struct _dviCharCache {
++#ifdef ENABLE_MULTIBYTE
++ XTextItem16 cache[DVI_TEXT_CACHE_SIZE];
++#else
+ XTextItem cache[DVI_TEXT_CACHE_SIZE];
++#endif
+ char adjustable[DVI_TEXT_CACHE_SIZE];
++#ifdef ENABLE_MULTIBYTE
++ XChar2b char_cache[DVI_CHAR_CACHE_SIZE];
++#else
+ char char_cache[DVI_CHAR_CACHE_SIZE];
++#endif
+ int index;
+ int max;
+ int char_index;
+@@ -182,6 +191,7 @@
+ int word_flag;
+ } DviPart;
+
++extern int DviGetAndPut();
+ #define DviGetIn(dw,cp)\
+ (dw->dvi.tmpFile ? (\
+ DviGetAndPut (dw, cp) \
+@@ -228,6 +238,11 @@
+ extern DeviceFont *QueryDeviceFont ();
+
+ extern char *GetWord(), *GetLine();
++
++#ifdef ENABLE_MULTIBYTE
++extern void DviInitLocale();
++extern int DviGEtCharacter();
++#endif
+ #endif /* _XtDviP_h */
+
+
+--- groff-1.18.1.1.orig/src/xditview/device.c
++++ groff-1.18.1.1/src/xditview/device.c
+@@ -2,10 +2,12 @@
+
+ #include <stdio.h>
+ #include <ctype.h>
++#include <stdlib.h>
+
+ #include <X11/Xos.h>
+ #include <X11/Intrinsic.h>
+
++#include "config.h"
+ #include "device.h"
+
+ #ifndef FONTPATH
+@@ -48,6 +50,9 @@
+ Device *dev;
+ struct charinfo *char_table[CHAR_TABLE_SIZE];
+ struct charinfo *code_table[256];
++#ifdef ENABLE_MULTIBYTE
++ struct charrange *range;
++#endif
+ };
+
+ struct charinfo {
+@@ -71,6 +76,15 @@
+ static struct charinfo *add_char();
+ static int read_charset_section();
+ static char *canonicalize_name();
++#ifdef ENABLE_MULTIBYTE
++struct charrange {
++ struct charrange *next;
++ int width;
++ int start_code;
++ int end_code;
++};
++static void add_charrange();
++#endif
+
+ static
+ Device *new_device(name)
+@@ -256,6 +270,9 @@
+ f->char_table[i] = 0;
+ for (i = 0; i < 256; i++)
+ f->code_table[i] = 0;
++#ifdef ENABLE_MULTIBYTE
++ f->range = 0;
++#endif
+ return f;
+ }
+
+@@ -267,6 +284,15 @@
+
+ if (!f)
+ return;
++#ifdef ENABLE_MULTIBYTE
++ {
++ struct charrange *cp, *cp2;
++ for (cp = f->range; cp != NULL; cp = cp2) {
++ cp2 = cp->next;
++ XtFree((char *)cp);
++ }
++ }
++#endif
+ XtFree(f->name);
+ for (i = 0; i < CHAR_TABLE_SIZE; i++) {
+ struct charinfo *ptr = f->char_table[i];
+@@ -342,6 +368,20 @@
+ {
+ struct charinfo *p;
+
++#ifdef ENABLE_MULTIBYTE
++ int wc;
++ extern DviWCharP();
++ if (DviWCharP(name, &wc)) {
++ struct charrange *rp;
++ for (rp = f->range; rp != NULL; rp = rp->next) {
++ if (rp->start_code <= wc && wc <= rp->end_code) {
++ *widthp = scale_round(rp->width, ps,
++ f->dev->unitwidth);
++ return 1;
++ }
++ }
++ }
++#endif
+ name = canonicalize_name(name);
+ for (p = f->char_table[hash_name(name) % CHAR_TABLE_SIZE];; p = p->next) {
+ if (!p)
+@@ -424,6 +464,22 @@
+ return ci;
+ }
+
++#ifdef ENABLE_MULTIBYTE
++static void
++add_charrange(f, width, start_code, end_code)
++ DeviceFont *f;
++ int width, start_code, end_code;
++{
++ struct charrange *ci;
++ ci = (struct charrange *)XtMalloc(sizeof(struct charrange));
++ ci->start_code = start_code;
++ ci->end_code = end_code;
++ ci->width = width;
++ ci->next = f->range;
++ f->range = ci;
++}
++#endif
++
+ /* Return non-zero for success. */
+
+ static
+@@ -439,11 +495,31 @@
+ int width;
+ int code;
+ char *p;
++#ifdef ENABLE_MULTIBYTE
++ int scode, ecode;
++#endif
+
+ current_lineno++;
+ name = strtok(buf, WS);
+ if (!name)
+ continue; /* ignore blank lines */
++#ifdef ENABLE_MULTIBYTE
++ if (sscanf(name, "u%X..u%X", &scode, &ecode) == 2) {
++ p = strtok((char *)0, WS);
++ if (!p)
++ break;
++ if (sscanf(p, "%d", &width) != 1) {
++ error("bad width field");
++ return 0;
++ }
++ p = strtok((char *)0, WS);
++ if (!p) {
++ error("missing type field");
++ return 0;
++ }
++ add_charrange(f, width, scode, ecode);
++ } else {
++#endif
+ p = strtok((char *)0, WS);
+ if (!p) /* end of charset section */
+ break;
+@@ -479,6 +555,9 @@
+ }
+ last_charinfo = add_char(f, name, width, code);
+ }
++#ifdef ENABLE_MULTIBYTE
++ }
++#endif
+ }
+ return 1;
+ }
+@@ -559,7 +638,7 @@
+ FILE *open_device_file(device_name, file_name, result)
+ char *device_name, *file_name, **result;
+ {
+- char *buf, *path;
++ char *buf;
+ FILE *fp;
+
+ buf = XtMalloc(3 + strlen(device_name) + 1 + strlen(file_name) + 1);
+--- groff-1.18.1.1.orig/src/xditview/page.c
++++ groff-1.18.1.1/src/xditview/page.c
+@@ -28,6 +28,7 @@
+ return m;
+ }
+
++void
+ DestroyFileMap (m)
+ DviFileMap *m;
+ {
+@@ -39,6 +40,7 @@
+ }
+ }
+
++void
+ ForgetPagePositions (dw)
+ DviWidget dw;
+ {
+@@ -46,6 +48,7 @@
+ dw->dvi.file_map = 0;
+ }
+
++void
+ RememberPagePosition(dw, number)
+ DviWidget dw;
+ int number;
+@@ -64,6 +67,7 @@
+ m->position = ftell (dw->dvi.file);
+ }
+
++int
+ SearchPagePosition (dw, number)
+ DviWidget dw;
+ int number;
+@@ -75,6 +79,7 @@
+ return m->position;
+ }
+
++void
+ FileSeek(dw, position)
+ DviWidget dw;
+ long position;
+--- groff-1.18.1.1.orig/src/xditview/FontMap.jisx0208
++++ groff-1.18.1.1/src/xditview/FontMap.jisx0208
+@@ -0,0 +1,2 @@
++M -misc-fixed-medium-r-normal--*-100-*-*-*-*-jisx0208.1983-0
++G -misc-fixed-medium-r-normal--*-100-*-*-*-*-jisx0208.1983-0
+--- groff-1.18.1.1.orig/src/xditview/xditview.c
++++ groff-1.18.1.1/src/xditview/xditview.c
+@@ -46,6 +46,7 @@
+ #include <X11/Xaw/SimpleMenu.h>
+ #include <X11/Xaw/SmeBSB.h>
+
++#include <stdlib.h>
+ #include <signal.h>
+
+ #include "Dvi.h"
+@@ -101,7 +102,7 @@
+ * Report the syntax for calling xditview.
+ */
+
+-static
++static void
+ Syntax(call)
+ char *call;
+ {
+@@ -126,12 +127,12 @@
+ char *name;
+ void (*function)();
+ } menuEntries[] = {
+- "nextPage", NextPage,
+- "previousPage", PreviousPage,
+- "selectPage", SelectPage,
+- "print", Print,
+- "openFile", OpenFile,
+- "quit", Quit,
++ {"nextPage", NextPage},
++ {"previousPage",PreviousPage},
++ {"selectPage", SelectPage},
++ {"print", Print},
++ {"openFile", OpenFile},
++ {"quit", Quit},
+ };
+
+ static void NextPageAction(), PreviousPageAction(), SelectPageAction();
+@@ -139,17 +140,18 @@
+ static void AcceptAction(), CancelAction();
+ static void PrintAction();
+ static void RerasterizeAction();
++static void MakePrompt();
+
+ XtActionsRec xditview_actions[] = {
+- "NextPage", NextPageAction,
+- "PreviousPage", PreviousPageAction,
+- "SelectPage", SelectPageAction,
+- "Print", PrintAction,
+- "OpenFile", OpenFileAction,
+- "Rerasterize", RerasterizeAction,
+- "Quit", QuitAction,
+- "Accept", AcceptAction,
+- "Cancel", CancelAction,
++ {"NextPage", NextPageAction},
++ {"PreviousPage", PreviousPageAction},
++ {"SelectPage", SelectPageAction},
++ {"Print", PrintAction},
++ {"OpenFile", OpenFileAction},
++ {"Rerasterize", RerasterizeAction},
++ {"Quit", QuitAction},
++ {"Accept", AcceptAction},
++ {"Cancel", CancelAction},
+ };
+
+ #define MenuNextPage 0
+@@ -318,6 +320,7 @@
+
+ static char fileBuf[1024];
+
++static void
+ ResetMenuEntry (entry)
+ Widget entry;
+ {
+@@ -516,6 +519,7 @@
+ CancelAction (widget, event, params, num_params);
+ }
+
++static void
+ MakePrompt(centerw, prompt, func, def)
+ Widget centerw;
+ char *prompt;
+--- groff-1.18.1.1.orig/src/xditview/xtotroff.c
++++ groff-1.18.1.1/src/xditview/xtotroff.c
+@@ -2,6 +2,7 @@
+ * xtotroff
+ *
+ * convert X font metrics into troff font metrics
++ * XXX: ENABLE_MULTIBYTE may not work yet
+ */
+
+ #include <X11/Xlib.h>
+@@ -10,6 +11,7 @@
+ #include <unistd.h>
+ #include <stdlib.h>
+ #include <fcntl.h>
++#include "config.h"
+ #include "XFontName.h"
+ #include "DviChar.h"
+
+@@ -171,6 +173,47 @@
+ fprintf (out, "spacewidth %d\n", w);
+ }
+ fprintf (out, "charset\n");
++#if 0 /* def ENABLE_MULTIBYTE */
++ if (fi->min_byte1 != 0 || fi->max_byte1 != 0) {
++ /*
++ * 2 byte code font.
++ */
++ int N;
++ int D = fi->max_char_or_byte2 - fi->min_char_or_byte2 + 1;
++ int max = (fi->max_byte1 - fi->min_byte1 + 1) *
++ (fi->max_char_or_byte2 - fi->min_char_or_byte2 + 1);
++ unsigned byte1;
++ unsigned byte2;
++ unsigned int euc_code;
++
++ for (N = 0; N < max; N++) {
++ byte1 = N / D + fi->min_byte1;
++ byte2 = N % D + fi->min_char_or_byte2;
++ euc_code = ((byte1 << 8) | byte2) & 0xffff | 0x8080;
++ wid = fi->max_bounds.width;
++ fputc(byte1 & 0xff | 0x80, out);/* output EUC code */
++ fputc(byte2 & 0xff | 0x80, out);/* output EUC code */
++ fprintf (out, "\t%d", wid);
++ if (groff_flag) {
++ int param[5];
++ param[0] = fi->max_bounds.ascent;
++ param[1] = fi->max_bounds.descent;
++ param[2] = 0 /* charRBearing (fi, c) - wid */;
++ param[3] = 0 /* charLBearing (fi, c) */;
++ param[4] = 0; /* XXX */
++ for (j = 0; j < 5; j++)
++ if (param[j] < 0)
++ param[j] = 0;
++ for (j = 4; j >= 0; j--)
++ if (param[j] != 0)
++ break;
++ for (k = 0; k <= j; k++)
++ fprintf (out, ",%d", param[k]);
++ }
++ fprintf (out, "\t0\t%#x\n", euc_code);
++ }
++ } else
++#endif /* ENABLE_MULTIBYTE */
+ for (c = fi->min_char_or_byte2; c <= fi->max_char_or_byte2; c++) {
+ char *name = DviCharName (char_map,c,0);
+ if (charExists (fi, c) && (groff_flag || name)) {
+--- groff-1.18.1.1.orig/src/xditview/DviChar.h
++++ groff-1.18.1.1/src/xditview/DviChar.h
+@@ -10,6 +10,8 @@
+ * CharSetRegistry from the CharSetEncoding
+ */
+
++#include "config.h"
++
+ # define DVI_MAX_SYNONYMS 10
+ # define DVI_MAP_SIZE 256
+ # define DVI_HASH_SIZE 256
+@@ -23,6 +25,10 @@
+ typedef struct _dviCharNameMap {
+ char *encoding;
+ int special;
++#ifdef ENABLE_MULTIBYTE
++ void (*char2XChar2b)(/* int c, XChar2b *xc */);
++ int (*char_index)(/* struct _dviCharNameMap *map, char *name */);
++#endif
+ char *dvi_names[DVI_MAP_SIZE][DVI_MAX_SYNONYMS];
+ DviCharNameHash *buckets[DVI_HASH_SIZE];
+ } DviCharNameMap;
+--- groff-1.18.1.1.orig/src/xditview/draw.c
++++ groff-1.18.1.1/src/xditview/draw.c
+@@ -10,6 +10,7 @@
+ #include <stdio.h>
+ #include <ctype.h>
+ #include <math.h>
++#include "config.h"
+
+ /* math.h on a Sequent doesn't define M_PI, apparently */
+ #ifndef M_PI
+@@ -17,6 +18,7 @@
+ #endif
+
+ #include "DviP.h"
++#include "encoding.h" /* XXX */
+
+ #define DeviceToX(dw, n) ((int)((n) * (dw)->dvi.scale_factor + .5))
+ #define XPos(dw) (DeviceToX((dw), (dw)->dvi.state->x - \
+@@ -25,6 +27,10 @@
+
+ static int FakeCharacter();
+
++/* font.c */
++extern int MaxFontPosition();
++
++void
+ HorizontalMove(dw, delta)
+ DviWidget dw;
+ int delta;
+@@ -32,6 +38,7 @@
+ dw->dvi.state->x += delta;
+ }
+
++void
+ HorizontalGoto(dw, NewPosition)
+ DviWidget dw;
+ int NewPosition;
+@@ -39,6 +46,7 @@
+ dw->dvi.state->x = NewPosition;
+ }
+
++void
+ VerticalMove(dw, delta)
+ DviWidget dw;
+ int delta;
+@@ -46,6 +54,7 @@
+ dw->dvi.state->y += delta;
+ }
+
++void
+ VerticalGoto(dw, NewPosition)
+ DviWidget dw;
+ int NewPosition;
+@@ -53,6 +62,7 @@
+ dw->dvi.state->y = NewPosition;
+ }
+
++void
+ AdjustCacheDeltas (dw)
+ DviWidget dw;
+ {
+@@ -94,14 +104,21 @@
+ }
+ }
+
++void
+ FlushCharCache (dw)
+ DviWidget dw;
+ {
+ if (dw->dvi.cache.char_index != 0) {
+ AdjustCacheDeltas (dw);
++#ifdef ENABLE_MULTIBYTE
++ XDrawText16 (XtDisplay (dw), XtWindow (dw), dw->dvi.normal_GC,
++ dw->dvi.cache.start_x, dw->dvi.cache.start_y,
++ dw->dvi.cache.cache, dw->dvi.cache.index + 1);
++#else
+ XDrawText (XtDisplay (dw), XtWindow (dw), dw->dvi.normal_GC,
+ dw->dvi.cache.start_x, dw->dvi.cache.start_y,
+ dw->dvi.cache.cache, dw->dvi.cache.index + 1);
++#endif
+ }
+ dw->dvi.cache.index = 0;
+ dw->dvi.cache.max = DVI_TEXT_CACHE_SIZE;
+@@ -115,6 +132,7 @@
+ dw->dvi.cache.start_y = dw->dvi.cache.y = YPos (dw);
+ }
+
++void
+ Newline (dw)
+ DviWidget dw;
+ {
+@@ -123,6 +141,7 @@
+ dw->dvi.word_flag = 0;
+ }
+
++void
+ Word (dw)
+ DviWidget dw;
+ {
+@@ -135,7 +154,6 @@
+ :\
+ (fi)->max_bounds.width\
+ )
+-
+
+ static
+ int charExists (fi, c)
+@@ -152,14 +170,25 @@
+ || p->ascent != 0 || p->descent != 0 || p->attributes != 0);
+ }
+
+-static
++static void
++#ifdef ENABLE_MULTIBYTE
++DoCharacter (dw, c, wid, char2xchar2b)
++#else
+ DoCharacter (dw, c, wid)
++#endif
+ DviWidget dw;
+ int c;
+ int wid; /* width in device units */
++#ifdef ENABLE_MULTIBYTE
++ void (*char2xchar2b)();
++#endif
+ {
+ register XFontStruct *font;
++#ifdef ENABLE_MULTIBYTE
++ register XTextItem16 *text;
++#else
+ register XTextItem *text;
++#endif
+ int x, y;
+
+ x = XPos(dw);
+@@ -225,9 +254,25 @@
+ text->font = None;
+ dw->dvi.cache.x += text->delta;
+ }
++#ifdef ENABLE_MULTIBYTE
++ if (charExists(font, c) || char2xchar2b) {
++#else
+ if (charExists(font, c)) {
++#endif
+ int w;
++#ifdef ENABLE_MULTIBYTE
++ if (char2xchar2b) {
++ (*char2xchar2b)(c,
++ &dw->dvi.cache.char_cache[dw->dvi.cache.char_index++]);
++ } else {
++ dw->dvi.cache.char_cache[dw->dvi.cache.char_index].
++ byte1 = (unsigned char)'\0';
++ dw->dvi.cache.char_cache[dw->dvi.cache.char_index++].
++ byte2 = (unsigned char)c;
++ }
++#else
+ dw->dvi.cache.char_cache[dw->dvi.cache.char_index++] = (char) c;
++#endif
+ ++text->nchars;
+ w = charWidth(font, c);
+ dw->dvi.cache.x += w;
+@@ -291,7 +336,11 @@
+ if (map)
+ c = DviCharIndex (map, buf);
+ if (c >= 0)
++#ifdef ENABLE_MULTIBYTE
++ DoCharacter (dw, c, wid, map->char2XChar2b);
++#else
+ DoCharacter (dw, c, wid);
++#endif
+ else
+ (void) FakeCharacter (dw, buf, wid);
+ dw->dvi.state->font_number = prevFont;
+@@ -345,6 +394,7 @@
+ return 1;
+ }
+
++void
+ PutNumberedCharacter (dw, c)
+ DviWidget dw;
+ int c;
+@@ -368,7 +418,11 @@
+ dw->dvi.state->font_size, c, &wid))
+ return;
+ if (dw->dvi.native) {
++#ifdef ENABLE_MULTIBYTE
++ DoCharacter (dw, c, wid, NULL);
++#else
+ DoCharacter (dw, c, wid);
++#endif
+ return;
+ }
+ map = QueryFontMap (dw, dw->dvi.state->font_number);
+@@ -379,7 +433,11 @@
+ name = device_name_for_code ((DeviceFont *)0, c)) {
+ int code = DviCharIndex (map, name);
+ if (code >= 0) {
++#ifdef ENABLE_MULTIBYTE
++ DoCharacter (dw, code, wid, map->char2XChar2b);
++#else
+ DoCharacter (dw, code, wid);
++#endif
+ break;
+ }
+ if (FakeCharacter (dw, name, wid))
+@@ -387,13 +445,14 @@
+ }
+ }
+
++void
+ ClearPage (dw)
+ DviWidget dw;
+ {
+ XClearWindow (XtDisplay (dw), XtWindow (dw));
+ }
+
+-static
++static void
+ setGC (dw)
+ DviWidget dw;
+ {
+@@ -417,7 +476,7 @@
+ }
+ }
+
+-static
++static void
+ setFillGC (dw)
+ DviWidget dw;
+ {
+@@ -444,6 +503,7 @@
+ }
+ }
+
++void
+ DrawLine (dw, x, y)
+ DviWidget dw;
+ int x, y;
+@@ -459,6 +519,7 @@
+ xp + DeviceToX (dw, x), yp + DeviceToX (dw, y));
+ }
+
++void
+ DrawCircle (dw, diam)
+ DviWidget dw;
+ int diam;
+@@ -473,6 +534,7 @@
+ d, d, 0, 64*360);
+ }
+
++void
+ DrawFilledCircle (dw, diam)
+ DviWidget dw;
+ int diam;
+@@ -490,6 +552,7 @@
+ d, d, 0, 64*360);
+ }
+
++void
+ DrawEllipse (dw, a, b)
+ DviWidget dw;
+ int a, b;
+@@ -501,6 +564,7 @@
+ DeviceToX (dw, a), DeviceToX (dw, b), 0, 64*360);
+ }
+
++void
+ DrawFilledEllipse (dw, a, b)
+ DviWidget dw;
+ int a, b;
+@@ -515,6 +579,7 @@
+ DeviceToX (dw, a), DeviceToX (dw, b), 0, 64*360);
+ }
+
++void
+ DrawArc (dw, x0, y0, x1, y1)
+ DviWidget dw;
+ int x0, y0, x1, y1;
+@@ -541,6 +606,7 @@
+ rad*2, rad*2, angle1, angle2);
+ }
+
++void
+ DrawPolygon (dw, v, n)
+ DviWidget dw;
+ int *v;
+@@ -572,7 +638,7 @@
+ XtFree((char *)p);
+ }
+
+-
++void
+ DrawFilledPolygon (dw, v, n)
+ DviWidget dw;
+ int *v;
+@@ -608,7 +674,7 @@
+
+ #define POINTS_MAX 10000
+
+-static
++static void
+ appendPoint(points, pointi, x, y)
+ XPoint *points;
+ int *pointi;
+@@ -623,7 +689,7 @@
+
+ #define FLATNESS 1
+
+-static
++static void
+ flattenCurve(points, pointi, x2, y2, x3, y3, x4, y4)
+ XPoint *points;
+ int *pointi;
+@@ -659,7 +725,7 @@
+ }
+ }
+
+-
++void
+ DrawSpline (dw, v, n)
+ DviWidget dw;
+ int *v;
+--- groff-1.18.1.1.orig/src/xditview/font.c
++++ groff-1.18.1.1/src/xditview/font.c
+@@ -9,10 +9,16 @@
+ #include <X11/StringDefs.h>
+ #include <stdio.h>
+ #include <ctype.h>
++#include <stdlib.h>
+ #include "DviP.h"
+ #include "XFontName.h"
+
+-static DisposeFontSizes();
++static void DisposeFontSizes();
++void DestroyFontMap();
++
++/* XFontName.c */
++extern Bool XParseFontName();
++extern Bool XFormatFontName();
+
+ static char *
+ savestr (s)
+@@ -115,7 +121,7 @@
+ # define SizePosition 8
+ # define EncodingPosition 13
+
+-static
++static int
+ ConvertFontNameToSize (n)
+ char *n;
+ {
+@@ -191,7 +197,7 @@
+ return sizes;
+ }
+
+-static
++static void
+ DisposeFontSizes (dw, fs)
+ DviWidget dw;
+ DviFontSizeList *fs;
+@@ -263,6 +269,7 @@
+ return f;
+ }
+
++void
+ ForgetFonts (dw)
+ DviWidget dw;
+ {
+@@ -322,6 +329,7 @@
+ }
+ #endif
+
++void
+ ParseFontMap (dw)
+ DviWidget dw;
+ {
+@@ -357,6 +365,7 @@
+ dw->dvi.font_map = fm;
+ }
+
++void
+ DestroyFontMap (font_map)
+ DviFontMap *font_map;
+ {
+@@ -374,6 +383,7 @@
+
+ /* ARGSUSED */
+
++void
+ SetFontPosition (dw, position, dvi_name, extra)
+ DviWidget dw;
+ int position;
+--- groff-1.18.1.1.orig/src/roff/troff/charinfo.h
++++ groff-1.18.1.1/src/roff/troff/charinfo.h
+@@ -29,9 +29,16 @@
+ macro *mac;
+ unsigned char special_translation;
+ unsigned char hyphenation_code;
++#ifdef ENABLE_MULTIBYTE
++ unsigned short flags;
++#else
+ unsigned char flags;
++#endif
+ unsigned char ascii_code;
+ unsigned char asciify_code;
++#ifdef ENABLE_MULTIBYTE
++ wchar wchar_code;
++#endif
+ char not_found;
+ char transparent_translate; // non-zero means translation applies
+ // to transparent throughput
+@@ -47,6 +54,11 @@
+ OVERLAPS_VERTICALLY = 16,
+ TRANSPARENT = 32,
+ NUMBERED = 64
++#ifdef ENABLE_MULTIBYTE
++ ,
++ DONT_BREAK_BEFORE = 0x100, // 256, pre kinsoku
++ DONT_BREAK_AFTER = 0x200 // 512, post kinsoku
++#endif
+ };
+ enum {
+ TRANSLATE_NONE,
+@@ -74,7 +86,11 @@
+ int get_translation_input();
+ charinfo *get_translation(int = 0);
+ void set_translation(charinfo *, int, int);
++#ifdef ENABLE_MULTIBYTE
++ void set_flags(unsigned short);
++#else
+ void set_flags(unsigned char);
++#endif
+ void set_special_translation(int, int);
+ int get_special_translation(int = 0);
+ macro *set_macro(macro *, int = 0);
+@@ -84,6 +100,12 @@
+ int get_number();
+ int numbered();
+ int is_fallback();
++#ifdef ENABLE_MULTIBYTE
++ wchar get_wchar_code();
++ void set_wchar_code(wchar);
++ int cannot_break_before(); // pre kinsoku
++ int cannot_break_after(); // post kinsoku
++#endif
+ symbol *get_symbol();
+ };
+
+@@ -131,6 +153,18 @@
+ return fallback;
+ }
+
++#ifdef ENABLE_MULTIBYTE
++inline int charinfo::cannot_break_before()
++{
++ return flags & DONT_BREAK_BEFORE;
++}
++
++inline int charinfo::cannot_break_after()
++{
++ return flags & DONT_BREAK_AFTER;
++}
++#endif
++
+ inline charinfo *charinfo::get_translation(int transparent_throughput)
+ {
+ return (transparent_throughput && !transparent_translate
+@@ -153,7 +187,18 @@
+ return (translate_input ? asciify_code : 0);
+ }
+
++#ifdef ENABLE_MULTIBYTE
++inline wchar charinfo::get_wchar_code()
++{
++ return wchar_code;
++}
++#endif
++
++#ifdef ENABLE_MULTIBYTE
++inline void charinfo::set_flags(unsigned short c)
++#else
+ inline void charinfo::set_flags(unsigned char c)
++#endif
+ {
+ flags = c;
+ }
+--- groff-1.18.1.1.orig/src/roff/troff/troff.h
++++ groff-1.18.1.1/src/roff/troff/troff.h
+@@ -28,6 +28,7 @@
+ #include <stdlib.h>
+ #include <errno.h>
+
++#include "encoding.h"
+ #include "assert.h"
+ #include "color.h"
+ #include "device.h"
+--- groff-1.18.1.1.orig/src/roff/troff/env.cc
++++ groff-1.18.1.1/src/roff/troff/env.cc
+@@ -32,6 +32,7 @@
+ #include "charinfo.h"
+ #include "macropath.h"
+ #include "input.h"
++#include "font.h" // ENABLE_MULTIBYTE only?
+ #include <math.h>
+
+ symbol default_family("T");
+@@ -264,6 +265,13 @@
+ void environment::add_char(charinfo *ci)
+ {
+ int s;
++#ifdef ENABLE_MULTIBYTE
++ int fontno = get_font(); // current font #
++ int fontset_font = get_fontset_fontno(fontno, ci->get_wchar_code());
++ if (fontno >= 0 && fontno != fontset_font) {
++ change_curfont(fontset_font);
++ }
++#endif
+ if (interrupted)
+ ;
+ // don't allow fields in dummy environments
+@@ -286,11 +294,95 @@
+ else {
+ if (line == 0)
+ start_line();
++#ifdef ENABLE_MULTIBYTE
++ /*
++ * XXX: NEED REWRITE TO BE MORE GENERIC
++ * This code is based on jgroff
++ * about kerning between ASCII and EUC-JP
++ */
++ if (!ci->get_wchar_code()) {
++ /*
++ * This node is a ASCII character node.
++ */
++ if (!pre_char_is_ascii && enable_wcharkern && !hwkern.is_zero()) {
++ /*
++ * Insert a little space node between EUC and ASCII.
++ */
++ word_space_node *ws;
++
++ if (ci->ends_sentence() || ci->transparent() || ci->cannot_break_before())
++ ws = new unbreakable_space_node(hwkern.to_units(), get_fill_color());
++ else
++ ws = new word_space_node(hwkern.to_units(),
++ get_fill_color(),
++ new width_list(env_space_width(this),
++ env_sentence_space_width(this)));
++ curenv->add_node(ws);
++ }
++ pre_char_is_ascii = 1;
++ pre_wchar_cannot_break_after = 0;
++ } else {
++ /*
++ * This node is a EUC charcater node.
++ */
++ if (!pre_char_is_ascii && line->get_node_type() == NODE_NEWLINE_SPACE) {
++ /*
++ * remove a newline-node.
++ */
++ node *ns_node = line;
++ line = line->next;
++ width_total -= ns_node->width();
++ space_total -= ns_node->nspaces();
++ delete ns_node;
++ }
++
++ if (!pre_wchar_cannot_break_after && !ci->cannot_break_before()) {
++ /*
++ * add a zero-width-space-node before EUC charcater node.
++ */
++ add_node(new kword_space_node(get_fill_color()));
++ met_with_kword_space = 1;
++ }
++ pre_wchar_cannot_break_after = ci->cannot_break_after();
++
++ if (pre_char_is_ascii && enable_wcharkern && !hwkern.is_zero()) {
++ /*
++ * Insert a little space node between ASCII and EUC.
++ */
++ unbreakable_space_node *ws =
++ new unbreakable_space_node(hwkern.to_units(), get_fill_color());
++ curenv->add_node(ws);
++ }
++ pre_char_is_ascii = 0;
++
++ if (!vlower.is_zero()) {
++ /*
++ * Lower a EUC charcater node.
++ */
++ curenv->add_node(new vmotion_node(vlower.to_units(),
++ get_fill_color())); // lower
++ }
++ }
++#endif
+ if (ci != hyphen_indicator_char)
+ line = line->add_char(ci, this, &width_total, &space_total);
+ else
+ line = line->add_discretionary_hyphen();
++#ifdef ENABLE_MULTIBYTE
++ enable_wcharkern = 1;
++ if (!vlower.is_zero() && ci->get_wchar_code()) {
++ /*
++ * Raise a EUC charcater node.
++ */
++ curenv->add_node(new vmotion_node(-vlower.to_units(),
++ get_fill_color())); // raise
++ }
++#endif
+ }
++#ifdef ENABLE_MULTIBYTE
++ if (fontset_font >= 0 && fontno != fontset_font)
++ change_curfont(fontno); /* restore saved font # */
++#endif
+ }
+
+ node *environment::make_char_node(charinfo *ci)
+@@ -394,7 +486,11 @@
+ width_total += x;
+ return;
+ }
++#ifdef ENABLE_MULTIBYTE
++ add_node(new newline_space_node(x, get_fill_color())); // This node may be removed
++#else
+ add_node(new word_space_node(x, get_fill_color(), w));
++#endif
+ possibly_break_line(0, spread_flag);
+ spread_flag = 0;
+ }
+@@ -480,6 +576,35 @@
+ warning(WARN_FONT, "bad font number");
+ }
+
++#ifdef ENABLE_MULTIBYTE
++void environment::change_curfont(symbol nm)
++{
++ int n = symbol_fontno(nm);
++ if (n < 0) {
++ n = next_available_font_position();
++ if (!mount_font(n, nm))
++ return;
++ }
++ fontno = n;
++}
++
++void environment::change_curfont(int n)
++{
++ if (is_good_fontno(n))
++ fontno = n;
++ else
++ error("bad font number");
++}
++
++void environment::set_encoding(symbol enc)
++{
++ if (enc.is_null() || enc.is_empty())
++ return;
++ select_input_encoding_handler(enc.contents());
++ select_output_encoding_handler(enc.contents());
++}
++#endif /* ENABLE_MULTIBYTE */
++
+ void environment::set_family(symbol fam)
+ {
+ if (interrupted)
+@@ -649,6 +774,16 @@
+ control_char('.'),
+ no_break_control_char('\''),
+ hyphen_indicator_char(0)
++#ifdef ENABLE_MULTIBYTE
++ ,
++ stretch_threshold(0),
++ pre_wchar_cannot_break_after(0),
++ pre_char_is_ascii(-1),
++ enable_wcharkern(0),
++ met_with_kword_space(0),
++ hwkern(font::wcharkern),
++ vlower(font::lowerwchar)
++#endif
+ {
+ prev_family = family = lookup_family(default_family);
+ prev_fontno = fontno = 1;
+@@ -739,6 +874,16 @@
+ control_char(e->control_char),
+ no_break_control_char(e->no_break_control_char),
+ hyphen_indicator_char(e->hyphen_indicator_char)
++#ifdef ENABLE_MULTIBYTE
++ ,
++ stretch_threshold(e->stretch_threshold),
++ pre_wchar_cannot_break_after(0),
++ pre_char_is_ascii(-1),
++ enable_wcharkern(0),
++ met_with_kword_space(0),
++ hwkern(font::wcharkern),
++ vlower(font::lowerwchar)
++#endif
+ {
+ }
+
+@@ -1781,6 +1926,9 @@
+ target_text_length = line_length - saved_indent;
+ width_total = H0;
+ space_total = 0;
++#ifdef ENABLE_MULTIBYTE
++ enable_wcharkern = 0;
++#endif
+ }
+
+ hunits environment::get_hyphenation_space()
+@@ -1819,6 +1967,23 @@
+ skip_line();
+ }
+
++#ifdef ENABLE_MULTIBYTE
++void stretch_threshold_request()
++{
++ int n;
++ if (has_arg() && get_integer(&n)) {
++ if (n < 0 || n > 100) {
++ warning(WARN_RANGE, "stretch threshold value %1 out of range", n);
++ } else {
++ curenv->stretch_threshold = n;
++ }
++ } else {
++ curenv->stretch_threshold = 0;
++ }
++ skip_line();
++}
++#endif
++
+ breakpoint *environment::choose_breakpoint()
+ {
+ hunits x = width_total;
+@@ -2014,6 +2179,30 @@
+ // When a macro follows a paragraph in fill mode, the
+ // current line should not be empty.
+ || (width_total - line->width()) > target_text_length)) {
++#ifdef ENABLE_MULTIBYTE
++ if (met_with_kword_space) {
++ node *linep = line;
++ node *prep = 0;
++ while (linep->next) {
++ if (linep->next->get_node_type() == NODE_GLYPH)
++ prep = 0;
++ else if (linep->next->get_node_type() == NODE_KWORD_SPACE)
++ prep = linep;
++ linep = linep->next;
++ }
++ if (prep) {
++ /*
++ * delete a kword_space_node which is in the top of line.
++ */
++ linep = prep->next;
++ prep->next = linep->next;
++ width_total -= linep->width();
++ space_total -= linep->nspaces();
++ delete linep;
++ }
++ met_with_kword_space = 0;
++ }
++#endif
+ hyphenate_line(start_here);
+ breakpoint *bp = choose_breakpoint();
+ if (bp == 0)
+@@ -2026,6 +2215,15 @@
+ bp->nd->split(bp->index, &pre, &post);
+ *ndp = post;
+ hunits extra_space_width = H0;
++#ifdef ENABLE_MULTIBYTE
++ int sv_adjust_mode = adjust_mode;
++ if (stretch_threshold) {
++ int ratio = bp->width * 100 / target_text_length;
++ if (ratio < stretch_threshold) {
++ adjust_mode = ADJUST_LEFT;
++ }
++ }
++#endif
+ switch(adjust_mode) {
+ case ADJUST_BOTH:
+ if (bp->nspaces != 0)
+@@ -2041,6 +2239,9 @@
+ saved_indent += target_text_length - bp->width;
+ break;
+ }
++#ifdef ENABLE_MULTIBYTE
++ adjust_mode = sv_adjust_mode;
++#endif
+ distribute_space(pre, bp->nspaces, extra_space_width);
+ hunits output_width = bp->width + extra_space_width;
+ input_line_start -= output_width;
+@@ -3237,6 +3438,9 @@
+ init_request("hys", hyphenation_space_request);
+ init_request("hym", hyphenation_margin_request);
+ init_request("pvs", post_vertical_spacing);
++#ifdef ENABLE_MULTIBYTE
++ init_request("stt", stretch_threshold_request);
++#endif
+ init_int_env_reg(".f", get_font);
+ init_int_env_reg(".b", get_bold);
+ init_hunits_env_reg(".i", get_indent);
+--- groff-1.18.1.1.orig/src/roff/troff/node.h
++++ groff-1.18.1.1/src/roff/troff/node.h
+@@ -20,6 +20,8 @@
+ Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */
+
+
++#include "config.h"
++
+ struct hyphen_list {
+ unsigned char hyphen;
+ unsigned char breakable;
+@@ -31,6 +33,9 @@
+ void hyphenate(hyphen_list *, unsigned);
+
+ enum hyphenation_type { HYPHEN_MIDDLE, HYPHEN_BOUNDARY, HYPHEN_INHIBIT };
++#ifdef ENABLE_MULTIBYTE
++enum node_type {NODE_GLYPH, NODE_KWORD_SPACE, NODE_NEWLINE_SPACE, NODE_ANOTHER};
++#endif
+
+ class ascii_output_file;
+
+@@ -106,6 +111,9 @@
+
+ virtual int same(node *) = 0;
+ virtual const char *type() = 0;
++#ifdef ENABLE_MULTIBYTE
++ virtual node_type get_node_type();
++#endif
+ };
+
+ inline node::node()
+@@ -212,6 +220,24 @@
+ int force_tprint();
+ };
+
++#ifdef ENABLE_MULTIBYTE
++class kword_space_node : public word_space_node {
++public:
++ kword_space_node(color *, node * = 0);
++ node *copy();
++ const char *type();
++ node_type get_node_type();
++};
++
++class newline_space_node : public word_space_node {
++public:
++ newline_space_node(hunits, color *, node * = 0);
++ node *copy();
++ const char *type();
++ node_type get_node_type();
++};
++#endif
++
+ class unbreakable_space_node : public word_space_node {
+ unbreakable_space_node(hunits, int, color *, node * = 0);
+ public:
+@@ -538,6 +564,9 @@
+ node *copy_node_list(node *);
+
+ int get_bold_fontno(int f);
++#ifdef ENABLE_MULTIBYTE
++int get_fontset_fontno(int f, wchar wc);
++#endif
+
+ inline hyphen_list::hyphen_list(unsigned char code, hyphen_list *p)
+ : hyphen(0), breakable(0), hyphenation_code(code), next(p)
+@@ -595,3 +624,4 @@
+
+ font_family *lookup_family(symbol);
+ symbol get_font_name(int, environment *);
++
+--- groff-1.18.1.1.orig/src/roff/troff/env.h
++++ groff-1.18.1.1/src/roff/troff/env.h
+@@ -213,6 +213,15 @@
+ unsigned char control_char;
+ unsigned char no_break_control_char;
+ charinfo *hyphen_indicator_char;
++#ifdef ENABLE_MULTIBYTE
++ int stretch_threshold;
++ int pre_wchar_cannot_break_after;
++ int pre_char_is_ascii;
++ int enable_wcharkern;
++ int met_with_kword_space;
++ hunits hwkern;
++ vunits vlower;
++#endif
+
+ environment(symbol);
+ environment(const environment *); // for temporary environment
+@@ -279,6 +288,10 @@
+ void wrap_up_tab();
+ void set_font(int);
+ void set_font(symbol);
++#ifdef ENABLE_MULTIBYTE
++ void change_curfont(int);
++ void change_curfont(symbol);
++#endif
+ void set_family(symbol);
+ void set_size(int);
+ void set_char_height(int);
+@@ -309,6 +322,9 @@
+ const char *get_point_size_string();
+ const char *get_requested_point_size_string();
+ void output_pending_lines();
++#ifdef ENABLE_MULTIBYTE
++ void set_encoding(symbol);
++#endif
+
+ friend void title_length();
+ friend void space_size();
+@@ -347,6 +363,9 @@
+ #ifdef WIDOW_CONTROL
+ friend void widow_control_request();
+ #endif /* WIDOW_CONTROL */
++#ifdef ENABLE_MULTIBYTE
++ friend void stretch_threshold_request();
++#endif
+
+ friend void do_divert(int append, int boxing);
+ };
+--- groff-1.18.1.1.orig/src/roff/troff/input.cc
++++ groff-1.18.1.1/src/roff/troff/input.cc
+@@ -35,6 +35,7 @@
+ #include "macropath.h"
+ #include "defs.h"
+ #include "input.h"
++#include "encoding.h" // XXX: ukai
+
+ // Needed for getpid() and isatty()
+ #include "posix.h"
+@@ -89,6 +90,11 @@
+ charinfo *charset_table[256];
+ unsigned char hpf_code_table[256];
+
++#ifdef ENABLE_MULTIBYTE
++charinfo *wcharset_table_entry(wchar wc);
++
++#endif /* ENABLE_MULTIBYTE */
++
+ static int warning_mask = DEFAULT_WARNING_MASK;
+ static int inhibit_errors = 0;
+ static int ignoring = 0;
+@@ -148,6 +154,20 @@
+ input_iterator *make_temp_iterator(const char *);
+ const char *input_char_description(int);
+
++#ifdef ENABLE_MULTIBYTE
++static void
++select_encoding()
++{
++ symbol e = get_long_name(1);
++ if (e.is_null()) {
++ skip_line();
++ return;
++ }
++ curenv->set_encoding(e);
++ skip_line();
++
++}
++#endif
+
+ void set_escape_char()
+ {
+@@ -1524,6 +1544,19 @@
+ type = TOKEN_NEWLINE;
+ }
+
++#ifdef ENABLE_MULTIBYTE
++class encoding_istream_input : public encoding_istream {
++private:
++ node **np;
++public:
++ encoding_istream_input(node **n) : np(n) {};
++ ~encoding_istream_input() {};
++ int getbyte() { return input_stack::get(np); };
++ int peekbyte() { return input_stack::peek(); };
++ void ungetbyte(int ch) { return; };
++};
++#endif
++
+ void token::next()
+ {
+ if (nd) {
+@@ -1533,6 +1566,10 @@
+ units x;
+ for (;;) {
+ node *n;
++#ifdef ENABLE_MULTIBYTE
++ encoding_istream_input einput(&n);
++#endif
++
+ int cc = input_stack::get(&n);
+ if (cc != escape_char || escape_char == 0) {
+ handle_normal_char:
+@@ -1686,8 +1723,22 @@
+ }
+ return;
+ default:
++#ifdef ENABLE_MULTIBYTE
++ wc = input_encoding->make_wchar(cc, einput);
++ if (is_wchar_code(wc)) {
++ type = TOKEN_WCHAR;
++ c = 0;
++ } else if (wc == ' ') {
++ type = TOKEN_SPACE;
++ c = cc;
++ } else {
++ type = TOKEN_CHAR;
++ c = cc;
++ }
++#else
+ type = TOKEN_CHAR;
+ c = cc;
++#endif
+ return;
+ }
+ }
+@@ -2057,6 +2108,10 @@
+ switch(type) {
+ case TOKEN_CHAR:
+ return c == t.c;
++#ifdef ENABLE_MULTIBYTE
++ case TOKEN_WCHAR:
++ return wc == t.wc;
++#endif
+ case TOKEN_SPECIAL:
+ return nm == t.nm;
+ case TOKEN_NUMBERED_CHAR:
+@@ -2563,6 +2618,27 @@
+ }
+ break;
+ }
++#ifdef ENABLE_MULTIBYTE
++ case token::TOKEN_WCHAR:
++ {
++ wchar wch = tok.wc;
++
++ if (possibly_handle_first_page_transition())
++ ;
++ else {
++ for (;;) {
++ curenv->add_char(wcharset_table_entry(wch));
++ tok.next();
++ if (tok.type != token::TOKEN_WCHAR)
++ break;
++ wch = tok.wc;
++ }
++ suppress_next = 1;
++ bol = 0;
++ }
++ break;
++ }
++#endif /* ENABLE_MULTIBYTE */
+ case token::TOKEN_TRANSPARENT:
+ {
+ if (bol) {
+@@ -6018,6 +6094,10 @@
+ {
+ if (type == TOKEN_CHAR)
+ return charset_table[c];
++#ifdef ENABLE_MULTIBYTE
++ if (type == TOKEN_WCHAR)
++ return wcharset_table_entry(wc);
++#endif
+ if (type == TOKEN_SPECIAL)
+ return get_charinfo(nm);
+ if (type == TOKEN_NUMBERED_CHAR)
+@@ -6070,6 +6150,11 @@
+ case TOKEN_CHAR:
+ *pp = (*pp)->add_char(charset_table[c], curenv, &w, &s);
+ break;
++#ifdef ENABLE_MULTIBYTE
++ case TOKEN_WCHAR:
++ *pp = (*pp)->add_char(wcharset_table_entry(wc), curenv, &w, &s);
++ break;
++#endif
+ case TOKEN_DUMMY:
+ n = new dummy_node;
+ break;
+@@ -6142,6 +6227,11 @@
+ case TOKEN_CHAR:
+ curenv->add_char(charset_table[c]);
+ break;
++#ifdef ENABLE_MULTIBYTE
++ case TOKEN_WCHAR:
++ curenv->add_char(wcharset_table_entry(wc));
++ break;
++#endif
+ case TOKEN_DUMMY:
+ curenv->add_node(new dummy_node);
+ break;
+@@ -6900,6 +6990,7 @@
+ if (!safer_flag)
+ mac_path = ¯o_path;
+ set_string(".T", device);
++ init_encoding_handler();
+ init_charset_table();
+ init_hpf_code_table();
+ if (!font::load_desc())
+@@ -6924,6 +7015,9 @@
+ // In the DESC file a font name of 0 (zero) means leave this
+ // position empty.
+ if (strcmp(font::font_name_table[i], "0") != 0)
++#ifdef ENABLE_MULTIBYTE
++ if (!font::is_on_demand(i))
++#endif
+ mount_font(j, symbol(font::font_name_table[i]));
+ curdiv = topdiv = new top_level_diversion;
+ if (nflag)
+@@ -7081,6 +7175,9 @@
+ init_request("ecs", save_escape_char);
+ init_request("el", else_request);
+ init_request("em", end_macro);
++#ifdef ENABLE_MULTIBYTE
++ init_request("encoding", select_encoding);
++#endif
+ init_request("eo", escape_off);
+ init_request("ex", exit_request);
+ init_request("fchar", define_fallback_character);
+@@ -7533,12 +7630,92 @@
+
+ dictionary charinfo_dictionary(501);
+
++#ifdef ENABLE_MULTIBYTE
++struct charinfo_list {
++ struct charinfo_list *next;
++ charinfo *ci;
++} *wcharset_table = NULL;
++
++/* XXX: use more efficient method? */
++static charinfo*
++lookup_wcharset_table(wchar wc)
++{
++ struct charinfo_list *cl;
++ for (cl = wcharset_table; cl; cl = cl->next) {
++ if (cl->ci && cl->ci->get_wchar_code() == wc)
++ return cl->ci;
++ }
++ return NULL;
++}
++
++static void
++add_wcharset_table(charinfo *ci)
++{
++ struct charinfo_list *cl = new struct charinfo_list;
++ cl->next = wcharset_table;
++ cl->ci = ci;
++ wcharset_table = cl;
++}
++
++charinfo *wcharset_table_entry(wchar wc)
++{
++ if (! is_wchar_code(wc))
++ return NULL;
++ charinfo *cp = lookup_wcharset_table(wc);
++ if (cp == NULL) {
++ int i = wchar_code(wc);
++ char buf[16];
++ if (i > 0x100)
++ sprintf(buf, "u%04X", i);
++ else {
++ cp = get_charinfo_by_number(i);
++ if (cp != NULL)
++ return cp;
++ sprintf(buf, "char%d", i); // ???
++ }
++ symbol nm = symbol(buf);
++ cp = new charinfo(nm);
++ (void)charinfo_dictionary.lookup(nm, cp);
++ cp->set_wchar_code(wc);
++ add_wcharset_table(cp);
++ }
++ return cp;
++}
++
++static charinfo *
++wchar_charinfo(symbol nm)
++{
++ const char *p = nm.contents();
++ if (*p != 'u') {
++ return NULL;
++ }
++ char *pp;
++ wchar wc = make_wchar(strtol(p + 1, &pp, 16));
++ if (pp < p + 5)
++ return NULL;
++ charinfo *cp = lookup_wcharset_table(wc);
++ if (cp)
++ return cp;
++ /* create on demand */
++ cp = new charinfo(nm);
++ cp->set_wchar_code(wc);
++ add_wcharset_table(cp);
++ return cp;
++}
++#endif
++
+ charinfo *get_charinfo(symbol nm)
+ {
+ void *p = charinfo_dictionary.lookup(nm);
+ if (p != 0)
+ return (charinfo *)p;
++#ifdef ENABLE_MULTIBYTE
++ charinfo *cp = wchar_charinfo(nm);
++ if (cp == NULL)
++ cp = new charinfo(nm);
++#else
+ charinfo *cp = new charinfo(nm);
++#endif
+ (void)charinfo_dictionary.lookup(nm, cp);
+ return cp;
+ }
+@@ -7548,6 +7725,9 @@
+ charinfo::charinfo(symbol s)
+ : translation(0), mac(0), special_translation(TRANSLATE_NONE),
+ hyphenation_code(0), flags(0), ascii_code(0), asciify_code(0),
++#ifdef ENABLE_MULTIBYTE
++ wchar_code(0),
++#endif
+ not_found(0), transparent_translate(1), translate_input(0),
+ fallback(0), nm(s)
+ {
+@@ -7592,6 +7772,14 @@
+ asciify_code = c;
+ }
+
++#ifdef ENABLE_MULTIBYTE
++void charinfo::set_wchar_code(wchar wc)
++{
++ wchar_code = wc;
++ index = wc; /* XXX: wchar code == index */
++}
++#endif
++
+ macro *charinfo::set_macro(macro *m, int f)
+ {
+ macro *tem = mac;
+@@ -7647,6 +7835,13 @@
+ int font::name_to_index(const char *nm)
+ {
+ charinfo *ci;
++#ifdef ENABLE_MULTIBYTE
++ int i = 1;
++ wchar wc = input_encoding->make_wchar(nm[0], (const unsigned char *)nm, &i);
++ if (is_wchar_code(wc)) {
++ ci = wcharset_table_entry(wc);
++ } else
++#endif
+ if (nm[1] == 0)
+ ci = charset_table[nm[0] & 0xff];
+ else if (nm[0] == '\\' && nm[2] == 0)
+@@ -7663,3 +7858,10 @@
+ {
+ return get_charinfo_by_number(n)->get_index();
+ }
++
++#ifdef ENABLE_MULTIBYTE
++int font::wchar_index(wchar wc)
++{
++ return(wcharset_table_entry(wc)->get_index());
++}
++#endif
+--- groff-1.18.1.1.orig/src/roff/troff/token.h
++++ groff-1.18.1.1/src/roff/troff/token.h
+@@ -28,12 +28,18 @@
+ symbol nm;
+ node *nd;
+ unsigned char c;
++#ifdef ENABLE_MULTIBYTE
++ wchar wc;
++#endif
+ int val;
+ units dim;
+ enum token_type {
+ TOKEN_BACKSPACE,
+ TOKEN_BEGIN_TRAP,
+ TOKEN_CHAR, // a normal printing character
++#ifdef ENABLE_MULTIBYTE
++ TOKEN_WCHAR, // a multibyte character
++#endif
+ TOKEN_DUMMY, // \&
+ TOKEN_EMPTY, // this is the initial value
+ TOKEN_END_TRAP,
+--- groff-1.18.1.1.orig/src/roff/troff/troff.man
++++ groff-1.18.1.1/src/roff/troff/troff.man
+@@ -22,6 +22,10 @@
+ A copy of the Free Documentation License is included as a file called
+ FDL in the main directory of the groff source package.
+ ..
++.ig
++A copy of the GNU Free Documentation License is also available in this
++Debian package as /usr/share/doc/groff-base/copyright.
++..
+ .
+ .
+ .\" --------------------------------------------------------------------
+--- groff-1.18.1.1.orig/src/roff/troff/node.cc
++++ groff-1.18.1.1/src/roff/troff/node.cc
+@@ -38,6 +38,7 @@
+ #include "input.h"
+ #include "div.h"
+ #include "geometry.h"
++#include "encoding.h"
+
+ #include "nonposix.h"
+
+@@ -745,8 +746,15 @@
+ int current_font_number;
+ symbol *font_position;
+ int nfont_positions;
++#ifdef ENABLE_MULTIBYTE
++ const char *current_encoding;
++#endif
+ enum { TBUF_SIZE = 256 };
++#ifdef ENABLE_MULTIBYTE
++ wchar tbuf[TBUF_SIZE];
++#else
+ char tbuf[TBUF_SIZE];
++#endif
+ int tbuf_len;
+ int tbuf_kern;
+ int begun_page;
+@@ -756,6 +764,9 @@
+ void put(int i);
+ void put(unsigned int i);
+ void put(const char *s);
++#ifdef ENABLE_MULTIBYTE
++ void putw(const wchar wc);
++#endif
+ void set_font(tfont *tf);
+ void flush_tbuf();
+ public:
+@@ -799,6 +810,13 @@
+ putc(c, fp);
+ }
+
++#ifdef ENABLE_MULTIBYTE
++inline void troff_output_file::putw(wchar wc)
++{
++ output_encoding->put_wchar(wc, fp);
++}
++#endif
++
+ inline void troff_output_file::put(unsigned char c)
+ {
+ putc(c, fp);
+@@ -956,7 +974,11 @@
+ check_output_limits(hpos, vpos - current_size);
+
+ for (int i = 0; i < tbuf_len; i++)
++#ifdef ENABLE_MULTIBYTE
++ putw(tbuf[i]);
++#else
+ put(tbuf[i]);
++#endif
+ put('\n');
+ tbuf_len = 0;
+ }
+@@ -988,7 +1010,13 @@
+ flush_tbuf();
+ set_font(tf);
+ }
++#ifdef ENABLE_MULTIBYTE
++ wchar c = ci->get_wchar_code();
++ if (c == '\0')
++ c = ci->get_ascii_code();
++#else
+ char c = ci->get_ascii_code();
++#endif
+ if (c == '\0') {
+ flush_tbuf();
+ do_motion();
+@@ -1014,7 +1042,8 @@
+ }
+ else if (tcommand_flag) {
+ if (tbuf_len > 0 && hpos == output_hpos && vpos == output_vpos
+- && gcol == current_glyph_color && fcol == current_fill_color
++ && (!gcol || gcol == current_glyph_color)
++ && (!fcol || fcol == current_fill_color)
+ && kk == tbuf_kern
+ && tbuf_len < TBUF_SIZE) {
+ check_charinfo(tf, ci);
+@@ -1039,17 +1068,26 @@
+ check_charinfo(tf, ci);
+ // check_output_limits(output_hpos, output_vpos);
+ if (vpos == output_vpos
+- && gcol == current_glyph_color && fcol == current_fill_color
++ && (!gcol || gcol == current_glyph_color)
++ && (!fcol || fcol == current_fill_color)
+ && n > 0 && n < 100 && !force_motion) {
+ put(char(n/10 + '0'));
+ put(char(n%10 + '0'));
++#ifdef ENABLE_MULTIBYTE
++ putw(c);
++#else
+ put(c);
++#endif
+ output_hpos = hpos;
+ }
+ else {
+ do_motion();
+ put('c');
++#ifdef ENABLE_MULTIBYTE
++ putw(c);
++#else
+ put(c);
++#endif
+ }
+ hpos += w.to_units() + kk;
+ }
+@@ -1063,7 +1101,13 @@
+ return;
+ if (tf != current_tfont)
+ set_font(tf);
++#ifdef ENABLE_MULTIBYTE
++ wchar c = ci->get_wchar_code();
++ if (c == '\0')
++ c = ci->get_ascii_code();
++#else
+ char c = ci->get_ascii_code();
++#endif
+ if (c == '\0') {
+ do_motion();
+ glyph_color(gcol);
+@@ -1087,11 +1131,16 @@
+ else {
+ int n = hpos - output_hpos;
+ if (vpos == output_vpos
+- && gcol == current_glyph_color && fcol == current_fill_color
++ && (!gcol || gcol == current_glyph_color)
++ && (!fcol || fcol == current_fill_color)
+ && n > 0 && n < 100) {
+ put(char(n/10 + '0'));
+ put(char(n%10 + '0'));
++#ifdef ENABLE_MULTIBYTE
++ putw(c);
++#else
+ put(c);
++#endif
+ output_hpos = hpos;
+ }
+ else {
+@@ -1099,13 +1148,26 @@
+ glyph_color(gcol);
+ fill_color(fcol);
+ put('c');
++#ifdef ENABLE_MULTIBYTE
++ putw(c);
++#else
+ put(c);
++#endif
+ }
+ }
+ }
+
+ void troff_output_file::set_font(tfont *tf)
+ {
++#ifdef ENABLE_MULTIBYTE
++ /* XXX */
++ if (current_encoding != output_encoding->name()) {
++ put("x encoding ");
++ put(output_encoding->name());
++ put('\n');
++ current_encoding = output_encoding->name();
++ }
++#endif
+ if (current_tfont == tf)
+ return;
+ int n = tf->get_input_position();
+@@ -1162,7 +1224,7 @@
+
+ void troff_output_file::fill_color(color *col)
+ {
+- if ((current_fill_color == col) || !color_flag)
++ if (!col || current_fill_color == col || !color_flag)
+ return;
+ flush_tbuf();
+ put("DF");
+@@ -1210,7 +1272,7 @@
+
+ void troff_output_file::glyph_color(color *col)
+ {
+- if ((current_glyph_color == col) || !color_flag)
++ if (!col || current_glyph_color == col || !color_flag)
+ return;
+ flush_tbuf();
+ put("m");
+@@ -1497,7 +1559,17 @@
+ put(' ');
+ put(vresolution);
+ put('\n');
++#ifdef ENABLE_MULTIBYTE
++ current_encoding = output_encoding->name();
++ put("x init");
++ if (current_encoding && *current_encoding != '\0') {
++ put(' ');
++ put(current_encoding);
++ }
++ put('\n');
++#else
+ put("x init\n");
++#endif
+ }
+
+ /* output_file */
+@@ -1777,6 +1849,9 @@
+ int same(node *);
+ const char *type();
+ int force_tprint();
++#ifdef ENABLE_MULTIBYTE
++ node_type get_node_type();
++#endif
+ };
+
+ glyph_node *glyph_node::free_list = 0;
+@@ -1802,6 +1877,9 @@
+ int same(node *);
+ const char *type();
+ int force_tprint();
++#ifdef ENABLE_MULTIBYTE
++ node_type get_node_type();
++#endif
+ };
+
+ class kern_pair_node : public node {
+@@ -5225,6 +5303,55 @@
+ return 0;
+ }
+
++#ifdef ENABLE_MULTIBYTE
++kword_space_node::kword_space_node(color *c, node *x) : word_space_node(0, c, new width_list(0, 0), x)
++{}
++
++node *kword_space_node::copy()
++{
++ return new kword_space_node(col);
++}
++newline_space_node::newline_space_node(hunits d, color *c, node *x) : word_space_node(d, c, new width_list(0, 0), x)
++{}
++
++node *newline_space_node::copy()
++{
++ return new newline_space_node(n, col);
++}
++
++const char *kword_space_node::type()
++{
++ return "kword_space_node";
++}
++const char *newline_space_node::type()
++{
++ return "newline_space_node";
++}
++
++node_type node::get_node_type()
++{
++ return NODE_ANOTHER;
++}
++node_type glyph_node::get_node_type()
++{
++ return NODE_GLYPH;
++}
++
++node_type ligature_node::get_node_type()
++{
++ return NODE_ANOTHER;
++}
++
++node_type kword_space_node::get_node_type()
++{
++ return NODE_KWORD_SPACE;
++}
++node_type newline_space_node::get_node_type()
++{
++ return NODE_NEWLINE_SPACE;
++}
++#endif
++
+ int unbreakable_space_node::same(node *nd)
+ {
+ return n == ((unbreakable_space_node *)nd)->n
+@@ -5625,6 +5752,28 @@
+ return 0;
+ }
+
++#ifdef ENABLE_MULTIBYTE
++int get_fontset_fontno(int n, wchar wc)
++{
++ if (n >= 0 && n < font_table_size && font_table[n] != 0) {
++ /* XXX: external_name should be used? */
++ int fn = font::get_fontset_font(font_table[n]->get_name().contents(), wc);
++ if (fn >= 0) {
++ symbol nm(font::font_name_table[fn]);
++ int nn = symbol_fontno(nm);
++ if (nn < 0) {
++ nn = next_available_font_position();
++ if (!mount_font(nn, nm)) {
++ return -1; /* XXX */
++ }
++ }
++ return nn;
++ }
++ }
++ return n;
++}
++#endif
++
+ hunits env_digit_width(environment *env)
+ {
+ node *n = make_glyph_node(charset_table['0'], env);
+--- groff-1.18.1.1.orig/src/roff/nroff/nroff.sh
++++ groff-1.18.1.1/src/roff/nroff/nroff.sh
+@@ -12,6 +12,8 @@
+ T=-Tlatin1 ;;
+ IBM-1047)
+ T=-Tcp1047 ;;
++ EUC-JP)
++ T=-Tnippon ;;
+ *)
+ case "${LC_ALL-${LC_CTYPE-${LANG}}}" in
+ *.UTF-8)
+@@ -20,6 +22,8 @@
+ T=-Tlatin1 ;;
+ *.IBM-1047)
+ T=-Tcp1047 ;;
++ ja_JP.ujis | ja_JP.eucJP)
++ T=-Tnippon ;;
+ *)
+ case "$LESSCHARSET" in
+ utf-8)
+@@ -28,8 +32,10 @@
+ T=-Tlatin1 ;;
+ cp1047)
+ T=-Tcp1047 ;;
++ japanese)
++ T=-Tnippon ;;
+ *)
+- T=-Tascii ;;
++ T=-Tascii8 ;;
+ esac ;;
+ esac ;;
+ esac
+@@ -52,7 +58,7 @@
+ exit 1 ;;
+ -[iptSUC] | -[mrno]*)
+ opts="$opts $1" ;;
+- -Tascii | -Tlatin1 | -Tutf8 | -Tcp1047)
++ -Tascii | -Tlatin1 | -Tutf8 | -Tcp1047 | -Tascii8 | -Tnippon)
+ T=$1 ;;
+ -T*)
+ # ignore other devices
+--- groff-1.18.1.1.orig/src/roff/nroff/nroff.man
++++ groff-1.18.1.1/src/roff/nroff/nroff.man
+@@ -53,8 +53,10 @@
+ command using groff.
+ Only
+ .BR ascii ,
++.BR ascii8 ,
+ .BR latin1 ,
+ .BR utf8 ,
++.BR nippon ,
+ and
+ .B cp1047
+ are valid arguments for the
+--- groff-1.18.1.1.orig/src/roff/groff/groff.cc
++++ groff-1.18.1.1/src/roff/groff/groff.cc
+@@ -107,6 +107,7 @@
+ program_name = argv[0];
+ static char stderr_buf[BUFSIZ];
+ setbuf(stderr, stderr_buf);
++ init_encoding_handler();
+ assert(NCOMMANDS <= MAX_COMMANDS);
+ string Pargs, Largs, Fargs;
+ int vflag = 0;
+--- groff-1.18.1.1.orig/src/roff/groff/groff.man
++++ groff-1.18.1.1/src/roff/groff/groff.man
+@@ -15,6 +15,10 @@
+ A copy of the Free Documentation License is included as a file called
+ FDL in the main directory of the groff source package.
+ ..
++.ig
++A copy of the GNU Free Documentation License is also available in this
++Debian package as /usr/share/doc/groff-base/copyright.
++..
+ .
+ .\" --------------------------------------------------------------------
+ .\" Setup
+@@ -118,7 +122,7 @@
+ .c --------------------------------------------------------------------
+ .c ShortOpt ([char [punct]])
+ .c
+-.c `-c' somwhere in the text
++.c `-c' somewhere in the text
+ .c second arg is punctuation
+ .c
+ .de ShortOpt
+@@ -130,7 +134,7 @@
+ .c --------------------------------------------------------------------
+ .c LongOpt ([name [punct]])
+ .c
+-.c `--name' somwhere in the text
++.c `--name' somewhere in the text
+ .c second arg is punctuation
+ .c
+ .de LongOpt
+@@ -314,7 +318,7 @@
+ .B groff
+ program allows to control the whole
+ .I groff
+-system by comand line options.
++system by command line options.
+ .
+ This is a great simplification in comparison to the classical case (which
+ uses pipes only).
+@@ -610,7 +614,7 @@
+ .
+ .
+ .\" --------------------------------------------------------------------
+-.SS Tranparent Options
++.SS Transparent Options
+ .\" --------------------------------------------------------------------
+ .
+ The following options are transparently handed over to the formatter
+@@ -695,7 +699,7 @@
+ is much easier than
+ .IR "classical roff" .
+ .
+-This section gives an overview of the parts that consitute the groff
++This section gives an overview of the parts that constitute the groff
+ system.
+ .
+ It complements
+@@ -948,6 +952,10 @@
+ Text output using the EBCDIC code page IBM cp1047 (e.g. OS/390 Unix).
+ .
+ .TP
++.B nippon
++Text output using the Japanese-EUC character set.
++.
++.TP
+ .B dvi
+ TeX DVI format.
+ .
+@@ -956,6 +964,12 @@
+ HTML output.
+ .
+ .TP
++.B ascii8
++For typewriter-like devices. Unlike
++.BR ascii ,
++this device is 8 bit clean. This device is intended to be used
++for codesets other than ASCII and ISO-8859-1.
++.TP
+ .B latin1
+ Text output using the ISO Latin-1 (ISO 8859-1) character set; see
+ .BR iso_8859_1 (7).
+@@ -1031,7 +1045,7 @@
+ .
+ .P
+ Today, most printing or drawing hardware is handled by the operating
+-system, by device drivers, or by software interfaces, usally accepting
++system, by device drivers, or by software interfaces, usually accepting
+ PostScript.
+ .
+ Consequently, there isn't an urgent need for more hardware device
+--- groff-1.18.1.1.orig/font/devX75/DESC
++++ groff-1.18.1.1/font/devX75/DESC
+@@ -1,5 +1,17 @@
+ styles R I B BI
+-fonts 6 0 0 0 0 0 S
++fonts 8 0 0 0 0 0 S M G
++fontset B G 2E00..9FFF
++fontset CB G 2E00..9FFF
++fontset HB G 2E00..9FFF
++fontset NB G 2E00..9FFF
++fontset TB G 2E00..9FFF
++fontset - M 2E00..9FFF
++fontset B G FF00..FFEF
++fontset CB G FF00..FFEF
++fontset HB G FF00..FFEF
++fontset NB G FF00..FFEF
++fontset TB G FF00..FFEF
++fontset - M FF00..FFEF
+ sizes 8 10 12 14 18 24 0
+ res 75
+ X11
+--- groff-1.18.1.1.orig/font/devX75/M.proto
++++ groff-1.18.1.1/font/devX75/M.proto
+@@ -0,0 +1,6 @@
++name M
++spacewidth 2
++charset
++u2E00..u9FFF 10 0
++uFF00..uFFEF 10 0
++
+--- groff-1.18.1.1.orig/font/devX75/Makefile.sub
++++ groff-1.18.1.1/font/devX75/Makefile.sub
+@@ -1,2 +1,13 @@
+ DEV=X75
+-DEVFILES=DESC TR TI TB TBI CR CI CB CBI HR HI HB HBI NR NI NB NBI S
++DEVFILES=DESC TR TI TB TBI CR CI CB CBI HR HI HB HBI NR NI NB NBI S M G
++CLEANADD=M G
++
++M: M.proto
++ @echo Making M
++ @-rm -f M
++ @cat $(srcdir)/M.proto > M
++
++G: M
++ @echo Making G
++ @-rm -f G
++ @sed -e 's/name M/name G/' M > G
+--- groff-1.18.1.1.orig/font/devlbp/Makefile.sub
++++ groff-1.18.1.1/font/devlbp/Makefile.sub
+@@ -13,9 +13,9 @@
+ -rm -f DESC
+ cat $(srcdir)/DESC.in >>DESC
+ if test "$(PAGE)" = A4; then \
+- echo "papersize a4" >>DESC; \
++ echo "papersize /etc/papersize a4" >>DESC; \
+ else \
+- echo "papersize letter" >>DESC; \
++ echo "papersize /etc/papersize letter" >>DESC; \
+ fi
+ test -z '$(LBPPRINT)' || echo print '$(LBPPRINT)' >>DESC
+
+--- groff-1.18.1.1.orig/font/devascii/Makefile.sub
++++ groff-1.18.1.1/font/devascii/Makefile.sub
+@@ -12,8 +12,8 @@
+ @-rm -f $@
+ @(charwidth=`expr $(RES) / $(CPI)` ; \
+ sed -e "s/^name [A-Z]*$$/name $@/" \
+- -e "s/^\\([^ ]*\\) [0-9]+ /\\1 $$charwidth /" \
+- -e "s/^spacewidth [0-9]+$$/spacewidth $$charwidth/" \
++ -e "s/^\\([^ ]*\\) [0-9][0-9]* /\\1 $$charwidth /" \
++ -e "s/^spacewidth [0-9][0-9]*$$/spacewidth $$charwidth/" \
+ -e "s/^internalname .*$$/internalname $@/" \
+ -e "/^internalname/s/BI/3/" \
+ -e "/^internalname/s/B/2/" \
+--- groff-1.18.1.1.orig/font/devascii8/Makefile.sub
++++ groff-1.18.1.1/font/devascii8/Makefile.sub
+@@ -0,0 +1,31 @@
++DEV=ascii8
++FONTS=R I B BI
++DEVFILES=$(FONTS) DESC
++CLEANADD=$(FONTS) DESC
++
++RES=240
++CPI=10
++LPI=6
++
++$(FONTS): R.proto
++ @echo Making $@
++ @-rm -f $@
++ @(charwidth=`expr $(RES) / $(CPI)` ; \
++ sed -e "s/^name [A-Z]*$$/name $@/" \
++ -e "s/^\\([^ ]*\\) [0-9][0-9]* /\\1 $$charwidth /" \
++ -e "s/^spacewidth [0-9][0-9]*$$/spacewidth $$charwidth/" \
++ -e "s/^internalname .*$$/internalname $@/" \
++ -e "/^internalname/s/BI/3/" \
++ -e "/^internalname/s/B/2/" \
++ -e "/^internalname/s/I/1/" \
++ -e "/^internalname .*[^ 0-9]/d" \
++ $(srcdir)/R.proto >$@)
++
++DESC: DESC.proto
++ @echo Making $@
++ @-rm -f $@
++ @sed -e "s/^res .*$$/res $(RES)/" \
++ -e "s/^hor .*$$/hor `expr $(RES) / $(CPI)`/" \
++ -e "s/^vert .*$$/vert `expr $(RES) / $(LPI)`/" \
++ -e "s/^fonts .*$$/fonts `set $(FONTS); echo $$#` $(FONTS)/" \
++ $(srcdir)/DESC.proto >$@
+--- groff-1.18.1.1.orig/font/devascii8/R.proto
++++ groff-1.18.1.1/font/devascii8/R.proto
+@@ -0,0 +1,262 @@
++name R
++internalname 0
++spacewidth 24
++charset
++! 24 0 0041
++" 24 0 0042
++dq "
++lq "
++rq "
++# 24 0 0043
++sh "
++$ 24 0 0044
++Do "
++% 24 0 0045
++& 24 0 0046
++' 24 0 0047
++aa "
++fm "
++aq "
++cq "
++( 24 0 0050
++) 24 0 0051
++* 24 0 0052
++** "
+++ 24 0 0053
++pl "
++, 24 0 0054
++\- 24 0 0055
++hy "
++- "
++mi "
++en "
++. 24 0 0056
++/ 24 0 0057
++sl "
++f/ "
++0 24 0 0060
++1 24 0 0061
++2 24 0 0062
++3 24 0 0063
++4 24 0 0064
++5 24 0 0065
++6 24 0 0066
++7 24 0 0067
++8 24 0 0070
++9 24 0 0071
++: 24 0 0072
++; 24 0 0073
++< 24 0 0074
++la "
++fo "
++= 24 0 0075
++eq "
++> 24 0 0076
++ra "
++fc "
++? 24 0 0077
++@ 24 0 0100
++at "
++A 24 0 0101
++*A "
++B 24 0 0102
++*B "
++C 24 0 0103
++D 24 0 0104
++E 24 0 0105
++*E "
++F 24 0 0106
++G 24 0 0107
++H 24 0 0110
++*Y "
++I 24 0 0111
++*I "
++J 24 0 0112
++K 24 0 0113
++*K "
++L 24 0 0114
++M 24 0 0115
++*M "
++N 24 0 0116
++*N "
++O 24 0 0117
++ci "
++*O "
++P 24 0 0120
++*R "
++Q 24 0 0121
++R 24 0 0122
++S 24 0 0123
++T 24 0 0124
++*T "
++U 24 0 0125
++V 24 0 0126
++W 24 0 0127
++X 24 0 0130
++*X "
++Y 24 0 0131
++*U "
++Z 24 0 0132
++*Z "
++[ 24 0 0133
++lB "
++\ 24 0 0134
++rs "
++] 24 0 0135
++rB "
++a^ 24 0 0136
++^ "
++ha "
++_ 24 0 0137
++ru "
++ul "
++` 24 0 0140
++oq "
++ga "
++a 24 0 0141
++b 24 0 0142
++c 24 0 0143
++d 24 0 0144
++e 24 0 0145
++f 24 0 0146
++g 24 0 0147
++h 24 0 0150
++i 24 0 0151
++.i "
++j 24 0 0152
++k 24 0 0153
++l 24 0 0154
++m 24 0 0155
++n 24 0 0156
++o 24 0 0157
++*o "
++p 24 0 0160
++q 24 0 0161
++r 24 0 0162
++s 24 0 0163
++t 24 0 0164
++u 24 0 0165
++v 24 0 0166
++w 24 0 0167
++x 24 0 0170
++mu "
++y 24 0 0171
++z 24 0 0172
++lC 24 0 0173
++{ "
++ba 24 0 0174
++or "
++bv "
++br "
++| "
++lb "
++lc "
++lf "
++lk "
++lt "
++rb "
++rc "
++rf "
++rk "
++rt "
++rC 24 0 0175
++} "
++a~ 24 0 0176
++~ "
++ap "
++ti "
++char161 24 0 0241
++char162 24 0 0242
++char163 24 0 0243
++char164 24 0 0244
++char165 24 0 0245
++char166 24 0 0246
++char167 24 0 0247
++char168 24 0 0250
++char169 24 0 0251
++char170 24 0 0252
++char171 24 0 0253
++char172 24 0 0254
++char173 24 0 0255
++char174 24 0 0256
++char175 24 0 0257
++char176 24 0 0260
++char177 24 0 0261
++char178 24 0 0262
++char179 24 0 0263
++char180 24 0 0264
++char181 24 0 0265
++char182 24 0 0266
++char183 24 0 0267
++char184 24 0 0270
++char185 24 0 0271
++char186 24 0 0272
++char187 24 0 0273
++char188 24 0 0274
++char189 24 0 0275
++char190 24 0 0276
++char191 24 0 0277
++char192 24 0 0300
++char193 24 0 0301
++char194 24 0 0302
++char195 24 0 0303
++char196 24 0 0304
++char197 24 0 0305
++char198 24 0 0306
++char199 24 0 0307
++char200 24 0 0310
++char201 24 0 0311
++char202 24 0 0312
++char203 24 0 0313
++char204 24 0 0314
++char205 24 0 0315
++char206 24 0 0316
++char207 24 0 0317
++char208 24 0 0320
++char209 24 0 0321
++char210 24 0 0322
++char211 24 0 0323
++char212 24 0 0324
++char213 24 0 0325
++char214 24 0 0326
++char215 24 0 0327
++char216 24 0 0330
++char217 24 0 0331
++char218 24 0 0332
++char219 24 0 0333
++char220 24 0 0334
++char221 24 0 0335
++char222 24 0 0336
++char223 24 0 0337
++char224 24 0 0340
++char225 24 0 0341
++char226 24 0 0342
++char227 24 0 0343
++char228 24 0 0344
++char229 24 0 0345
++char230 24 0 0346
++char231 24 0 0347
++char232 24 0 0350
++char233 24 0 0351
++char234 24 0 0352
++char235 24 0 0353
++char236 24 0 0354
++char237 24 0 0355
++char238 24 0 0356
++char239 24 0 0357
++char240 24 0 0360
++char241 24 0 0361
++char242 24 0 0362
++char243 24 0 0363
++char244 24 0 0364
++char245 24 0 0365
++char246 24 0 0366
++char247 24 0 0367
++char248 24 0 0370
++char249 24 0 0371
++char250 24 0 0372
++char251 24 0 0373
++char252 24 0 0374
++char253 24 0 0375
++char254 24 0 0376
++char255 24 0 0377
+--- groff-1.18.1.1.orig/font/devascii8/DESC.proto
++++ groff-1.18.1.1/font/devascii8/DESC.proto
+@@ -0,0 +1,8 @@
++res 240
++hor 24
++vert 40
++unitwidth 10
++sizes 10 0
++fonts 4 R I B BI
++tcommand
++postpro grotty
+--- groff-1.18.1.1.orig/font/devX100/DESC
++++ groff-1.18.1.1/font/devX100/DESC
+@@ -1,5 +1,17 @@
+ styles R I B BI
+-fonts 6 0 0 0 0 0 S
++fonts 8 0 0 0 0 0 S M G
++fontset B G 2E00..9FFF
++fontset CB G 2E00..9FFF
++fontset HB G 2E00..9FFF
++fontset NB G 2E00..9FFF
++fontset TB G 2E00..9FFF
++fontset - M 2E00..9FFF
++fontset B G FF00..FFEF
++fontset CB G FF00..FFEF
++fontset HB G FF00..FFEF
++fontset NB G FF00..FFEF
++fontset TB G FF00..FFEF
++fontset - M FF00..FFEF
+ sizes 8 10 12 14 18 24 0
+ res 100
+ X11
+--- groff-1.18.1.1.orig/font/devX100/M.proto
++++ groff-1.18.1.1/font/devX100/M.proto
+@@ -0,0 +1,5 @@
++name M
++spacewidth 3
++charset
++u2E00..u9FFF 20 0
++uFF00..uFFEF 20 0
+--- groff-1.18.1.1.orig/font/devX100/Makefile.sub
++++ groff-1.18.1.1/font/devX100/Makefile.sub
+@@ -1,2 +1,13 @@
+ DEV=X100
+-DEVFILES=DESC TR TI TB TBI CR CI CB CBI HR HI HB HBI NR NI NB NBI S
++DEVFILES=DESC TR TI TB TBI CR CI CB CBI HR HI HB HBI NR NI NB NBI S M G
++CLEANADD=M G
++
++M: M.proto
++ @echo Making M
++ @-rm -f M
++ @cat $(srcdir)/M.proto > M
++
++G: M
++ @echo Making G
++ @-rm -f G
++ @sed -e 's/name M/name G/' M > G
+--- groff-1.18.1.1.orig/font/devX100-12/DESC
++++ groff-1.18.1.1/font/devX100-12/DESC
+@@ -1,5 +1,17 @@
+ styles R I B BI
+-fonts 6 0 0 0 0 0 S
++fonts 8 0 0 0 0 0 S M G
++fontset B G 2E00..9FFF
++fontset CB G 2E00..9FFF
++fontset HB G 2E00..9FFF
++fontset NB G 2E00..9FFF
++fontset TB G 2E00..9FFF
++fontset - M 2E00..9FFF
++fontset B G FF00..FFEF
++fontset CB G FF00..FFEF
++fontset HB G FF00..FFEF
++fontset NB G FF00..FFEF
++fontset TB G FF00..FFEF
++fontset - M FF00..FFEF
+ sizes 8 10 12 14 18 24 0
+ res 100
+ X11
+--- groff-1.18.1.1.orig/font/devX100-12/M.proto
++++ groff-1.18.1.1/font/devX100-12/M.proto
+@@ -0,0 +1,5 @@
++name M
++spacewidth 4
++charset
++u2E00..u9FFF 20 0
++uFF00..uFFEF 20 0
+--- groff-1.18.1.1.orig/font/devX100-12/Makefile.sub
++++ groff-1.18.1.1/font/devX100-12/Makefile.sub
+@@ -1,2 +1,14 @@
+ DEV=X100-12
+-DEVFILES=DESC TR TI TB TBI CR CI CB CBI HR HI HB HBI NR NI NB NBI S
++DEVFILES=DESC TR TI TB TBI CR CI CB CBI HR HI HB HBI NR NI NB NBI S M G
++CLEANADD=M G
++
++M: M.proto
++ @echo Making M
++ @-rm -f M
++ @cat $(srcdir)/M.proto > M
++
++G: M
++ @echo Making G
++ @-rm -f G
++ @sed -e 's/name M/name G/' M > G
++
+--- groff-1.18.1.1.orig/font/devlj4/Makefile.sub
++++ groff-1.18.1.1/font/devlj4/Makefile.sub
+@@ -22,9 +22,9 @@
+ echo "unitwidth `expr 7620000 / $(LJ4RES)`" >>DESC
+ cat $(srcdir)/DESC.in >>DESC
+ if test "$(PAGE)" = A4; then \
+- echo "papersize a4" >>DESC; \
++ echo "papersize /etc/papersize a4" >>DESC; \
+ else \
+- echo "papersize letter" >>DESC; \
++ echo "papersize /etc/papersize letter" >>DESC; \
+ fi
+ test -z '$(LJ4PRINT)' || echo print '$(LJ4PRINT)' >>DESC
+
+--- groff-1.18.1.1.orig/font/devnippon/M.proto
++++ groff-1.18.1.1/font/devnippon/M.proto
+@@ -0,0 +1,6 @@
++name M
++internalname 4
++spacewidth 48
++charset
++u2E00..u9FFF 48 0
++uFF00..uFFEF 48 0
+--- groff-1.18.1.1.orig/font/devnippon/Makefile.sub
++++ groff-1.18.1.1/font/devnippon/Makefile.sub
+@@ -0,0 +1,48 @@
++DEV=nippon
++FONTS=R I B BI
++WFONTS=M G
++ALLFONTS=$(FONTS) $(WFONTS)
++DEVFILES=$(ALLFONTS) DESC
++CLEANADD=$(ALLFONTS) DESC
++
++RES=240
++CPI=10
++LPI=6
++
++$(FONTS): R.proto
++ @echo Making $@
++ @-rm -f $@
++ @(charwidth=`expr $(RES) / $(CPI)` ; \
++ sed -e "s/^name [A-Z]*$$/name $@/" \
++ -e "s/^\\([^ ]*\\) [0-9][0-9]* /\\1 $$charwidth /" \
++ -e "s/^spacewidth [0-9][0-9]*$$/spacewidth $$charwidth/" \
++ -e "s/^internalname .*$$/internalname $@/" \
++ -e "/^internalname/s/BI/3/" \
++ -e "/^internalname/s/B/2/" \
++ -e "/^internalname/s/I/1/" \
++ -e "/^internalname .*[^ 0-9]/d" \
++ $(srcdir)/R.proto >$@)
++
++M: M.proto
++ @echo Making M
++ @-rm -f M
++ @(wcharwidth=`expr $(RES) / $(CPI) \* 2` ; \
++ spacewidth=`expr $(RES) / $(CPI)` ; \
++ sed -e "s/^spacewidth [0-9][0-9]*$$/spacewidth $$spacewidth/" \
++ -e "s/^u\\([0-9A-F]*\\)..u\\([0-9A-F]*\\) [0-9][0-9]*/u\\1..u\\2 $$wcharwidth/" \
++ $(srcdir)/M.proto > $@)
++
++G: M
++ @echo Making G
++ @-rm -f G
++ @sed -e 's/name M/name G/' \
++ -e 's/internalname 4/internalname 5/' M > G
++
++DESC: DESC.proto
++ @echo Making $@
++ @-rm -f $@
++ @sed -e "s/^res .*$$/res $(RES)/" \
++ -e "s/^hor .*$$/hor `expr $(RES) / $(CPI)`/" \
++ -e "s/^vert .*$$/vert `expr $(RES) / $(LPI)`/" \
++ -e "s/^fonts .*$$/fonts `set $(ALLFONTS); echo $$#` $(ALLFONTS)/" \
++ $(srcdir)/DESC.proto >$@
+--- groff-1.18.1.1.orig/font/devnippon/R.proto
++++ groff-1.18.1.1/font/devnippon/R.proto
+@@ -0,0 +1,167 @@
++name R
++internalname 0
++spacewidth 24
++charset
++! 24 0 0041
++" 24 0 0042
++dq "
++lq "
++rq "
++# 24 0 0043
++sh "
++$ 24 0 0044
++Do "
++% 24 0 0045
++& 24 0 0046
++' 24 0 0047
++aa "
++fm "
++aq "
++cq "
++( 24 0 0050
++) 24 0 0051
++* 24 0 0052
++** "
+++ 24 0 0053
++pl "
++, 24 0 0054
++\- 24 0 0055
++hy "
++- "
++mi "
++en "
++. 24 0 0056
++/ 24 0 0057
++sl "
++f/ "
++0 24 0 0060
++1 24 0 0061
++2 24 0 0062
++3 24 0 0063
++4 24 0 0064
++5 24 0 0065
++6 24 0 0066
++7 24 0 0067
++8 24 0 0070
++9 24 0 0071
++: 24 0 0072
++; 24 0 0073
++< 24 0 0074
++la "
++fo "
++= 24 0 0075
++eq "
++> 24 0 0076
++ra "
++fc "
++? 24 0 0077
++@ 24 0 0100
++at "
++A 24 0 0101
++*A "
++B 24 0 0102
++*B "
++C 24 0 0103
++D 24 0 0104
++E 24 0 0105
++*E "
++F 24 0 0106
++G 24 0 0107
++H 24 0 0110
++*Y "
++I 24 0 0111
++*I "
++J 24 0 0112
++K 24 0 0113
++*K "
++L 24 0 0114
++M 24 0 0115
++*M "
++N 24 0 0116
++*N "
++O 24 0 0117
++ci "
++*O "
++P 24 0 0120
++*R "
++Q 24 0 0121
++R 24 0 0122
++S 24 0 0123
++T 24 0 0124
++*T "
++U 24 0 0125
++V 24 0 0126
++W 24 0 0127
++X 24 0 0130
++*X "
++Y 24 0 0131
++*U "
++Z 24 0 0132
++*Z "
++[ 24 0 0133
++lB "
++\ 24 0 0134
++rs "
++] 24 0 0135
++rB "
++a^ 24 0 0136
++^ "
++ha "
++_ 24 0 0137
++ru "
++ul "
++` 24 0 0140
++oq "
++ga "
++a 24 0 0141
++b 24 0 0142
++c 24 0 0143
++d 24 0 0144
++e 24 0 0145
++f 24 0 0146
++g 24 0 0147
++h 24 0 0150
++i 24 0 0151
++.i "
++j 24 0 0152
++k 24 0 0153
++l 24 0 0154
++m 24 0 0155
++n 24 0 0156
++o 24 0 0157
++*o "
++p 24 0 0160
++q 24 0 0161
++r 24 0 0162
++s 24 0 0163
++t 24 0 0164
++u 24 0 0165
++v 24 0 0166
++w 24 0 0167
++x 24 0 0170
++mu "
++y 24 0 0171
++z 24 0 0172
++lC 24 0 0173
++{ "
++ba 24 0 0174
++or "
++bv "
++br "
++| "
++lb "
++lc "
++lf "
++lk "
++lt "
++rb "
++rc "
++rf "
++rk "
++rt "
++rC 24 0 0175
++} "
++a~ 24 0 0176
++~ "
++ap "
++ti "
+--- groff-1.18.1.1.orig/font/devnippon/DESC.proto
++++ groff-1.18.1.1/font/devnippon/DESC.proto
+@@ -0,0 +1,12 @@
++res 240
++hor 24
++vert 40
++unitwidth 10
++sizes 10 0
++fonts 6 R I B BI M G
++fontset B G 2E00..9FFF
++fontset - M 2E00..9FFF
++fontset B G FF00..FFEF
++fontset - M FF00..FFEF
++tcommand
++postpro grotty
+--- groff-1.18.1.1.orig/font/devps/M.proto
++++ groff-1.18.1.1/font/devps/M.proto
+@@ -0,0 +1,9 @@
++name M
++internalname Ryumin-Light-EUC-H
++spacewidth 250
++encodingname EUC-JP
++charset
++u2E00..u9FFF 1000 3
++uFF00..uFF5F 1000 3
++uFF60..uFF9F 500 3
++uFFA0..uFFEF 1000 3
+--- groff-1.18.1.1.orig/font/devps/DESC.in
++++ groff-1.18.1.1/font/devps/DESC.in
+@@ -1,11 +1,33 @@
+ res 72000
+ hor 1
+ vert 1
++lowerwchar 300
++wcharkern 400
+ sizescale 1000
+ unitwidth 1000
+ sizes 1000-10000000 0
+ styles R I B BI
+ family T
+-fonts 9 0 0 0 0 0 SS S ZD ZDR
++fonts 11 0 0 0 0 0 SS S ZD ZDR M G
++fontset B G 2E00..9FFF
++fontset AB G 2E00..9FFF
++fontset BMB G 2E00..9FFF
++fontset CB G 2E00..9FFF
++fontset HB G 2E00..9FFF
++fontset HNB G 2E00..9FFF
++fontset NB G 2E00..9FFF
++fontset PB G 2E00..9FFF
++fontset TB G 2E00..9FFF
++fontset - M 2E00..9FFF
++fontset B G FF00..FFEF
++fontset AB G FF00..FFEF
++fontset BMB G FF00..FFEF
++fontset CB G FF00..FFEF
++fontset HB G FF00..FFEF
++fontset HNB G FF00..FFEF
++fontset NB G FF00..FFEF
++fontset PB G FF00..FFEF
++fontset TB G FF00..FFEF
++fontset - M FF00..FFEF
+ tcommand
+ postpro grops
+--- groff-1.18.1.1.orig/font/devps/Makefile.sub
++++ groff-1.18.1.1/font/devps/Makefile.sub
+@@ -2,23 +2,23 @@
+ DISTFILES=text.enc download \
+ S ZD ZDR SS AB ABI AI AR BMB BMBI BMI BMR \
+ CB CBI CI CR HB HBI HI HR HNB HNBI HNI HNR \
+- NB NBI NI NR PB PBI PI PR TB TBI TI TR ZCMI
++ NB NBI NI NR PB PBI PI PR TB TBI TI TR ZCMI M G
+ PSFILES=prologue symbolsl.pfa zapfdr.pfa
+ DEVGENFILES=generate/Makefile generate/afmname generate/dingbats.map \
+ generate/dingbats.rmap generate/lgreekmap generate/symbol.sed \
+ generate/symbolchars generate/symbolsl.afm generate/textmap
+ DEVFILES=DESC $(PSFILES) $(DISTFILES) $(DEVGENFILES)
+
+-CLEANADD=DESC $(PSFILES)
++CLEANADD=DESC $(PSFILES) M G
+
+ DESC: DESC.in
+ -rm -f DESC
+ cat $(srcdir)/DESC.in >DESC
+ echo broken $(BROKEN_SPOOLER_FLAGS) >>DESC
+ if test "$(PAGE)" = A4; then \
+- echo "papersize a4" >>DESC; \
++ echo "papersize /etc/papersize a4" >>DESC; \
+ else \
+- echo "papersize letter" >>DESC; \
++ echo "papersize /etc/papersize letter" >>DESC; \
+ fi
+ test -z '$(PSPRINT)' || echo print '$(PSPRINT)' >>DESC
+
+@@ -33,3 +33,14 @@
+ $(PSFILES):
+ -rm -f $@
+ sed -f $(srcdir)/psstrip.sed $? >$@
++
++M: M.proto
++ @echo Making M
++ @-rm -f M
++ @cp M.proto M
++
++G: M
++ @echo Making G
++ @-rm -f G
++ @sed -e 's/name M/name G/' \
++ -e 's/internalname Ryumin-Light-EUC-H/internalname GothicBBB-Medium-EUC-H/' M > G
+--- groff-1.18.1.1.orig/font/devutf8/M.proto
++++ groff-1.18.1.1/font/devutf8/M.proto
+@@ -0,0 +1,6 @@
++name M
++internalname 4
++spacewidth 48
++charset
++u2E00..u9FFF 48 0
++uFF00..uFFEF 48 0
+--- groff-1.18.1.1.orig/font/devutf8/Makefile.sub
++++ groff-1.18.1.1/font/devutf8/Makefile.sub
+@@ -1,7 +1,8 @@
+ DEV=utf8
+ FONTS=R I B BI
+-DEVFILES=$(FONTS) DESC
+-CLEANADD=$(FONTS) DESC
++WFONTS=M G
++DEVFILES=$(FONTS) $(WFONTS) DESC
++CLEANADD=$(FONTS) $(WFONTS) DESC
+
+ RES=240
+ CPI=10
+@@ -12,8 +13,8 @@
+ @-rm -f $@
+ @(charwidth=`expr $(RES) / $(CPI)` ; \
+ sed -e "s/^name [A-Z]*$$/name $@/" \
+- -e "s/^\\([^ ]*\\) [0-9]+ /\\1 $$charwidth /" \
+- -e "s/^spacewidth [0-9]+$$/spacewidth $$charwidth/" \
++ -e "s/^\\([^ ]*\\) [0-9][0-9]* /\\1 $$charwidth /" \
++ -e "s/^spacewidth [0-9][0-9]*$$/spacewidth $$charwidth/" \
+ -e "s/^internalname .*$$/internalname $@/" \
+ -e "/^internalname/s/BI/3/" \
+ -e "/^internalname/s/B/2/" \
+@@ -21,12 +22,27 @@
+ -e "/^internalname .*[^ 0-9]/d" \
+ $(srcdir)/R.proto >$@)
+
++M: M.proto
++ @echo Making M
++ @-rm -f M
++ (wcharwidth=`expr $(RES) / $(CPI) \* 2` ; \
++ spacewidth=`expr $(RES) / $(CPI)` ; \
++ sed -e "s/^spacewidth [0-9][0-9]*$$/spacewidth $$spacewidth/" \
++ -e "s/^u\\([0-9A-F]*\\)..u\\([0-9A-F]*\\) [0-9][0-9]*/u\\1..u\\2 $$wcharwidth/" \
++ $(srcdir)/M.proto > $@)
++
++G: M
++ @echo Making G
++ @-rm -f G
++ @sed -e 's/name M/name G/' \
++ -e 's/internalname 4/internalname 5/' M > G
++
+ DESC: DESC.proto
+ @echo Making $@
+ @-rm -f $@
+ @sed -e "s/^res .*$$/res $(RES)/" \
+ -e "s/^hor .*$$/hor `expr $(RES) / $(CPI)`/" \
+ -e "s/^vert .*$$/vert `expr $(RES) / $(LPI)`/" \
+- -e "s/^fonts .*$$/fonts `set $(FONTS); echo $$#` $(FONTS)/" \
++ -e "s/^fonts .*$$/fonts `set $(FONTS) $(WFONTS); echo $$#` $(FONTS) $(WFONTS)/" \
+ $(srcdir)/DESC.proto >$@
+
+--- groff-1.18.1.1.orig/font/devutf8/DESC.proto
++++ groff-1.18.1.1/font/devutf8/DESC.proto
+@@ -3,6 +3,10 @@
+ vert 40
+ unitwidth 10
+ sizes 10 0
+-fonts 4 R I B BI
++fonts 6 R I B BI M G
++fontset B G 2E00..9FFF
++fontset B G FF00..FFEF
++fontset - M 2E00..9FFF
++fontset - M FF00..FFEF
+ tcommand
+ postpro grotty
+--- groff-1.18.1.1.orig/font/devhtml/M.proto
++++ groff-1.18.1.1/font/devhtml/M.proto
+@@ -0,0 +1,5 @@
++name M
++spacewidth 16
++charset
++u2E00..u9FFF 16,14,2 0
++uFF00..uFFEF 16,14,2 0
+--- groff-1.18.1.1.orig/font/devhtml/Makefile.sub
++++ groff-1.18.1.1/font/devhtml/Makefile.sub
+@@ -1,8 +1,10 @@
+ DEV=html
+ PROTOFONTS=R I B BI CR CI CB CBI
+ FONTS=$(PROTOFONTS) S
+-DEVFILES=$(FONTS) DESC
+-CLEANADD=$(FONTS) DESC
++WFONTS=M G
++ALLFONTS=$(FONTS) $(WFONTS)
++DEVFILES=$(ALLFONTS) DESC
++CLEANADD=$(ALLFONTS) DESC
+
+ RES=240
+ CPI=10
+@@ -13,8 +15,8 @@
+ @-rm -f $@
+ @(charwidth=`expr $(RES) / $(CPI)` ; \
+ sed -e "s/^name [A-Z]*$$/name $@/" \
+- -e "s/^\\([^ ]*\\) [0-9]+ /\\1 $$charwidth /" \
+- -e "s/^spacewidth [0-9]+$$/spacewidth $$charwidth/" \
++ -e "s/^\\([^ ]*\\) [0-9][0-9]* /\\1 $$charwidth /" \
++ -e "s/^spacewidth [0-9][0-9]*$$/spacewidth $$charwidth/" \
+ -e "s/^internalname .*$$/internalname $@/" \
+ -e "/^internalname/s/CR/4/" \
+ -e "/^internalname/s/BI/3/" \
+@@ -29,6 +31,19 @@
+ @sed -e "s/^res .*$$/res $(RES)/" \
+ -e "s/^hor .*$$/hor `expr $(RES) / $(CPI)`/" \
+ -e "s/^vert .*$$/vert `expr $(RES) / $(LPI)`/" \
+- -e "s/^fonts .*$$/fonts `set $(FONTS); echo $$#` $(FONTS)/" \
++ -e "s/^fonts .*$$/fonts `set $(ALLFONTS); echo $$#` $(ALLFONTS)/" \
+ $(srcdir)/DESC.proto >$@
+
++M: M.proto
++ @echo Making M
++ @-rm -f M
++ @(wcharwidth=`expr $(RES) / $(CPI) \* 2`; \
++ spacewidth=`expr $(RES) / $(CPI)`; \
++ sed -e "s/^u\\([0-9A-F]*\\)..u\\([0-9A-F]*\\) [0-9][0-9]*/u\\1..u\\2 $$wcharwidth/" \
++ -e "s/^spacewidth [0-9][0-9]*$$/spacewidth $$spacewidth/" \
++ $(srcdir)/M.proto > $@)
++
++G: M
++ @echo Making G
++ @-rm -f G
++ @sed -e 's/name M/name G/' M > G
+--- groff-1.18.1.1.orig/font/devhtml/DESC.proto
++++ groff-1.18.1.1/font/devhtml/DESC.proto
+@@ -3,7 +3,11 @@
+ vert 40
+ unitwidth 10
+ sizes 6 8 10 12 14 16 18 0
+-fonts 9 R I B BI CR CI CB CBI S
++fonts 11 R I B BI CR CI CB CBI S M G
++fontset B G 2E00..9FFF
++fontset - M 2E00..9FFF
++fontset B G FF00..FFEF
++fontset - M FF00..FFEF
+ tcommand
+ html
+ postpro post-grohtml
+--- groff-1.18.1.1.orig/font/devX75-12/DESC
++++ groff-1.18.1.1/font/devX75-12/DESC
+@@ -1,5 +1,17 @@
+ styles R I B BI
+-fonts 6 0 0 0 0 0 S
++fonts 8 0 0 0 0 0 S M G
++fontset B G 2E00..9FFF
++fontset CB G 2E00..9FFF
++fontset HB G 2E00..9FFF
++fontset NB G 2E00..9FFF
++fontset TB G 2E00..9FFF
++fontset - M 2E00..9FFF
++fontset B G FF00..FFEF
++fontset CB G FF00..FFEF
++fontset HB G FF00..FFEF
++fontset NB G FF00..FFEF
++fontset TB G FF00..FFEF
++fontset - M FF00..FFEF
+ sizes 8 10 12 14 18 24 0
+ res 75
+ X11
+--- groff-1.18.1.1.orig/font/devX75-12/M.proto
++++ groff-1.18.1.1/font/devX75-12/M.proto
+@@ -0,0 +1,5 @@
++name M
++spacewidth 2
++charset
++u2E00..u9FFF 12 0
++uFF00..uFFEF 12 0
+--- groff-1.18.1.1.orig/font/devX75-12/Makefile.sub
++++ groff-1.18.1.1/font/devX75-12/Makefile.sub
+@@ -1,2 +1,13 @@
+ DEV=X75-12
+-DEVFILES=DESC TR TI TB TBI CR CI CB CBI HR HI HB HBI NR NI NB NBI S
++DEVFILES=DESC TR TI TB TBI CR CI CB CBI HR HI HB HBI NR NI NB NBI S M G
++CLEANADD=M G
++
++M: M.proto
++ @echo Making M
++ @-rm -f M
++ @cat $(srcdir)/M.proto > M
++
++G: M
++ @echo Making G
++ @-rm -f G
++ @sed -e 's/name M/name G/' M > G
+--- groff-1.18.1.1.orig/font/devdvi/M.proto-NTT
++++ groff-1.18.1.1/font/devdvi/M.proto-NTT
+@@ -0,0 +1,6882 @@
++name M
++internalname dmj10
++checksum 0
++designsize 10485760
++charset
++¡¡ F 1:0
++¡¢ F 2:0
++¡£ F 3:0
++¡¤ F 4:0
++¡¥ F 5:0
++¡¦ F 6:0
++¡§ F 7:0
++¡¨ F 8:0
++¡© F 9:0
++¡ª F 10:0
++¡« F 11:0
++¡¬ F 12:0
++¡ F 13:0
++¡® F 14:0
++¡¯ F 15:0
++¡° F 16:0
++¡± F 17:0
++¡² F 18:0
++¡³ F 19:0
++¡´ F 20:0
++¡µ F 21:0
++¡¶ F 22:0
++¡· F 23:0
++¡¸ F 24:0
++¡¹ F 25:0
++¡º F 26:0
++¡» F 27:0
++¡¼ F 28:0
++¡½ F 29:0
++¡¾ F 30:0
++¡¿ F 31:0
++¡À F 32:0
++¡Á F 33:0
++¡Â F 34:0
++¡Ã F 35:0
++¡Ä F 36:0
++¡Å F 37:0
++¡Æ F 38:0
++¡Ç F 39:0
++¡È F 40:0
++¡É F 41:0
++¡Ê F 42:0
++¡Ë F 43:0
++¡Ì F 44:0
++¡Í F 45:0
++¡Î F 46:0
++¡Ï F 47:0
++¡Ð F 48:0
++¡Ñ F 49:0
++¡Ò F 50:0
++¡Ó F 51:0
++¡Ô F 52:0
++¡Õ F 53:0
++¡Ö F 54:0
++¡× F 55:0
++¡Ø F 56:0
++¡Ù F 57:0
++¡Ú F 58:0
++¡Û F 59:0
++¡Ü F 60:0
++¡Ý F 61:0
++¡Þ F 62:0
++¡ß F 63:0
++¡à F 64:0
++¡á F 65:0
++¡â F 66:0
++¡ã F 67:0
++¡ä F 68:0
++¡å F 69:0
++¡æ F 70:0
++¡ç F 71:0
++¡è F 72:0
++¡é F 73:0
++¡ê F 74:0
++¡ë F 75:0
++¡ì F 76:0
++¡í F 77:0
++¡î F 78:0
++¡ï F 79:0
++¡ð F 80:0
++¡ñ F 81:0
++¡ò F 82:0
++¡ó F 83:0
++¡ô F 84:0
++¡õ F 85:0
++¡ö F 86:0
++¡÷ F 87:0
++¡ø F 88:0
++¡ù F 89:0
++¡ú F 90:0
++¡û F 91:0
++¡ü F 92:0
++¡ý F 93:0
++¡þ F 94:0
++¢¡ F 101:0
++¢¢ F 102:0
++¢£ F 103:0
++¢¤ F 104:0
++¢¥ F 105:0
++¢¦ F 106:0
++¢§ F 107:0
++¢¨ F 108:0
++¢© F 109:0
++¢ª F 110:0
++¢« F 111:0
++¢¬ F 112:0
++¢ F 113:0
++¢® F 114:0
++¢º F 126:0
++¢» F 127:0
++¢¼ F 128:0
++¢½ F 129:0
++¢¾ F 130:0
++¢¿ F 131:0
++¢À F 132:0
++¢Á F 133:0
++¢Ê F 142:0
++¢Ë F 143:0
++¢Ì F 144:0
++¢Í F 145:0
++¢Î F 146:0
++¢Ï F 147:0
++¢Ð F 148:0
++¢Ü F 160:0
++¢Ý F 161:0
++¢Þ F 162:0
++¢ß F 163:0
++¢à F 164:0
++¢á F 165:0
++¢â F 166:0
++¢ã F 167:0
++¢ä F 168:0
++¢å F 169:0
++¢æ F 170:0
++¢ç F 171:0
++¢è F 172:0
++¢é F 173:0
++¢ê F 174:0
++¢ò F 182:0
++¢ó F 183:0
++¢ô F 184:0
++¢õ F 185:0
++¢ö F 186:0
++¢÷ F 187:0
++¢ø F 188:0
++¢ù F 189:0
++¢þ F 194:0
++£° F 48:1
++£± F 49:1
++£² F 50:1
++£³ F 51:1
++£´ F 52:1
++£µ F 53:1
++£¶ F 54:1
++£· F 55:1
++£¸ F 56:1
++£¹ F 57:1
++£Á F 65:1
++£Â F 66:1
++£Ã F 67:1
++£Ä F 68:1
++£Å F 69:1
++£Æ F 70:1
++£Ç F 71:1
++£È F 72:1
++£É F 73:1
++£Ê F 74:1
++£Ë F 75:1
++£Ì F 76:1
++£Í F 77:1
++£Î F 78:1
++£Ï F 79:1
++£Ð F 80:1
++£Ñ F 81:1
++£Ò F 82:1
++£Ó F 83:1
++£Ô F 84:1
++£Õ F 85:1
++£Ö F 86:1
++£× F 87:1
++£Ø F 88:1
++£Ù F 89:1
++£Ú F 90:1
++£á F 97:1
++£â F 98:1
++£ã F 99:1
++£ä F 100:1
++£å F 101:1
++£æ F 102:1
++£ç F 103:1
++£è F 104:1
++£é F 105:1
++£ê F 106:1
++£ë F 107:1
++£ì F 108:1
++£í F 109:1
++£î F 110:1
++£ï F 111:1
++£ð F 112:1
++£ñ F 113:1
++£ò F 114:1
++£ó F 115:1
++£ô F 116:1
++£õ F 117:1
++£ö F 118:1
++£÷ F 119:1
++£ø F 120:1
++£ù F 121:1
++£ú F 122:1
++¤¡ F 1:2
++¤¢ F 2:2
++¤£ F 3:2
++¤¤ F 4:2
++¤¥ F 5:2
++¤¦ F 6:2
++¤§ F 7:2
++¤¨ F 8:2
++¤© F 9:2
++¤ª F 10:2
++¤« F 11:2
++¤¬ F 12:2
++¤ F 13:2
++¤® F 14:2
++¤¯ F 15:2
++¤° F 16:2
++¤± F 17:2
++¤² F 18:2
++¤³ F 19:2
++¤´ F 20:2
++¤µ F 21:2
++¤¶ F 22:2
++¤· F 23:2
++¤¸ F 24:2
++¤¹ F 25:2
++¤º F 26:2
++¤» F 27:2
++¤¼ F 28:2
++¤½ F 29:2
++¤¾ F 30:2
++¤¿ F 31:2
++¤À F 32:2
++¤Á F 33:2
++¤Â F 34:2
++¤Ã F 35:2
++¤Ä F 36:2
++¤Å F 37:2
++¤Æ F 38:2
++¤Ç F 39:2
++¤È F 40:2
++¤É F 41:2
++¤Ê F 42:2
++¤Ë F 43:2
++¤Ì F 44:2
++¤Í F 45:2
++¤Î F 46:2
++¤Ï F 47:2
++¤Ð F 48:2
++¤Ñ F 49:2
++¤Ò F 50:2
++¤Ó F 51:2
++¤Ô F 52:2
++¤Õ F 53:2
++¤Ö F 54:2
++¤× F 55:2
++¤Ø F 56:2
++¤Ù F 57:2
++¤Ú F 58:2
++¤Û F 59:2
++¤Ü F 60:2
++¤Ý F 61:2
++¤Þ F 62:2
++¤ß F 63:2
++¤à F 64:2
++¤á F 65:2
++¤â F 66:2
++¤ã F 67:2
++¤ä F 68:2
++¤å F 69:2
++¤æ F 70:2
++¤ç F 71:2
++¤è F 72:2
++¤é F 73:2
++¤ê F 74:2
++¤ë F 75:2
++¤ì F 76:2
++¤í F 77:2
++¤î F 78:2
++¤ï F 79:2
++¤ð F 80:2
++¤ñ F 81:2
++¤ò F 82:2
++¤ó F 83:2
++¥¡ F 1:3
++¥¢ F 2:3
++¥£ F 3:3
++¥¤ F 4:3
++¥¥ F 5:3
++¥¦ F 6:3
++¥§ F 7:3
++¥¨ F 8:3
++¥© F 9:3
++¥ª F 10:3
++¥« F 11:3
++¥¬ F 12:3
++¥ F 13:3
++¥® F 14:3
++¥¯ F 15:3
++¥° F 16:3
++¥± F 17:3
++¥² F 18:3
++¥³ F 19:3
++¥´ F 20:3
++¥µ F 21:3
++¥¶ F 22:3
++¥· F 23:3
++¥¸ F 24:3
++¥¹ F 25:3
++¥º F 26:3
++¥» F 27:3
++¥¼ F 28:3
++¥½ F 29:3
++¥¾ F 30:3
++¥¿ F 31:3
++¥À F 32:3
++¥Á F 33:3
++¥Â F 34:3
++¥Ã F 35:3
++¥Ä F 36:3
++¥Å F 37:3
++¥Æ F 38:3
++¥Ç F 39:3
++¥È F 40:3
++¥É F 41:3
++¥Ê F 42:3
++¥Ë F 43:3
++¥Ì F 44:3
++¥Í F 45:3
++¥Î F 46:3
++¥Ï F 47:3
++¥Ð F 48:3
++¥Ñ F 49:3
++¥Ò F 50:3
++¥Ó F 51:3
++¥Ô F 52:3
++¥Õ F 53:3
++¥Ö F 54:3
++¥× F 55:3
++¥Ø F 56:3
++¥Ù F 57:3
++¥Ú F 58:3
++¥Û F 59:3
++¥Ü F 60:3
++¥Ý F 61:3
++¥Þ F 62:3
++¥ß F 63:3
++¥à F 64:3
++¥á F 65:3
++¥â F 66:3
++¥ã F 67:3
++¥ä F 68:3
++¥å F 69:3
++¥æ F 70:3
++¥ç F 71:3
++¥è F 72:3
++¥é F 73:3
++¥ê F 74:3
++¥ë F 75:3
++¥ì F 76:3
++¥í F 77:3
++¥î F 78:3
++¥ï F 79:3
++¥ð F 80:3
++¥ñ F 81:3
++¥ò F 82:3
++¥ó F 83:3
++¥ô F 84:3
++¥õ F 85:3
++¥ö F 86:3
++¦¡ F 1:4
++¦¢ F 2:4
++¦£ F 3:4
++¦¤ F 4:4
++¦¥ F 5:4
++¦¦ F 6:4
++¦§ F 7:4
++¦¨ F 8:4
++¦© F 9:4
++¦ª F 10:4
++¦« F 11:4
++¦¬ F 12:4
++¦ F 13:4
++¦® F 14:4
++¦¯ F 15:4
++¦° F 16:4
++¦± F 17:4
++¦² F 18:4
++¦³ F 19:4
++¦´ F 20:4
++¦µ F 21:4
++¦¶ F 22:4
++¦· F 23:4
++¦¸ F 24:4
++¦Á F 33:4
++¦Â F 34:4
++¦Ã F 35:4
++¦Ä F 36:4
++¦Å F 37:4
++¦Æ F 38:4
++¦Ç F 39:4
++¦È F 40:4
++¦É F 41:4
++¦Ê F 42:4
++¦Ë F 43:4
++¦Ì F 44:4
++¦Í F 45:4
++¦Î F 46:4
++¦Ï F 47:4
++¦Ð F 48:4
++¦Ñ F 49:4
++¦Ò F 50:4
++¦Ó F 51:4
++¦Ô F 52:4
++¦Õ F 53:4
++¦Ö F 54:4
++¦× F 55:4
++¦Ø F 56:4
++§¡ F 1:5
++§¢ F 2:5
++§£ F 3:5
++§¤ F 4:5
++§¥ F 5:5
++§¦ F 6:5
++§§ F 7:5
++§¨ F 8:5
++§© F 9:5
++§ª F 10:5
++§« F 11:5
++§¬ F 12:5
++§ F 13:5
++§® F 14:5
++§¯ F 15:5
++§° F 16:5
++§± F 17:5
++§² F 18:5
++§³ F 19:5
++§´ F 20:5
++§µ F 21:5
++§¶ F 22:5
++§· F 23:5
++§¸ F 24:5
++§¹ F 25:5
++§º F 26:5
++§» F 27:5
++§¼ F 28:5
++§½ F 29:5
++§¾ F 30:5
++§¿ F 31:5
++§À F 32:5
++§Á F 33:5
++§Ñ F 49:5
++§Ò F 50:5
++§Ó F 51:5
++§Ô F 52:5
++§Õ F 53:5
++§Ö F 54:5
++§× F 55:5
++§Ø F 56:5
++§Ù F 57:5
++§Ú F 58:5
++§Û F 59:5
++§Ü F 60:5
++§Ý F 61:5
++§Þ F 62:5
++§ß F 63:5
++§à F 64:5
++§á F 65:5
++§â F 66:5
++§ã F 67:5
++§ä F 68:5
++§å F 69:5
++§æ F 70:5
++§ç F 71:5
++§è F 72:5
++§é F 73:5
++§ê F 74:5
++§ë F 75:5
++§ì F 76:5
++§í F 77:5
++§î F 78:5
++§ï F 79:5
++§ð F 80:5
++§ñ F 81:5
++¨¡ F 1:6
++¨¢ F 2:6
++¨£ F 3:6
++¨¤ F 4:6
++¨¥ F 5:6
++¨¦ F 6:6
++¨§ F 7:6
++¨¨ F 8:6
++¨© F 9:6
++¨ª F 10:6
++¨« F 11:6
++¨¬ F 12:6
++¨ F 13:6
++¨® F 14:6
++¨¯ F 15:6
++¨° F 16:6
++¨± F 17:6
++¨² F 18:6
++¨³ F 19:6
++¨´ F 20:6
++¨µ F 21:6
++¨¶ F 22:6
++¨· F 23:6
++¨¸ F 24:6
++¨¹ F 25:6
++¨º F 26:6
++¨» F 27:6
++¨¼ F 28:6
++¨½ F 29:6
++¨¾ F 30:6
++¨¿ F 31:6
++¨À F 32:6
++°¡ F 0:a
++°¢ F 1:a
++°£ F 2:a
++°¤ F 3:a
++°¥ F 4:a
++°¦ F 5:a
++°§ F 6:a
++°¨ F 7:a
++°© F 8:a
++°ª F 9:a
++°« F 10:a
++°¬ F 11:a
++° F 12:a
++°® F 13:a
++°¯ F 14:a
++°° F 15:a
++°± F 16:a
++°² F 17:a
++°³ F 18:a
++°´ F 19:a
++°µ F 20:a
++°¶ F 21:a
++°· F 22:a
++°¸ F 23:a
++°¹ F 24:a
++°º F 25:a
++°» F 26:a
++°¼ F 27:a
++°½ F 28:a
++°¾ F 29:a
++°¿ F 30:a
++°À F 31:a
++°Á F 32:a
++°Â F 33:a
++°Ã F 34:a
++°Ä F 35:a
++°Å F 36:a
++°Æ F 37:a
++°Ç F 38:a
++°È F 39:a
++°É F 40:a
++°Ê F 41:a
++°Ë F 42:a
++°Ì F 43:a
++°Í F 44:a
++°Î F 45:a
++°Ï F 46:a
++°Ð F 47:a
++°Ñ F 48:a
++°Ò F 49:a
++°Ó F 50:a
++°Ô F 51:a
++°Õ F 52:a
++°Ö F 53:a
++°× F 54:a
++°Ø F 55:a
++°Ù F 56:a
++°Ú F 57:a
++°Û F 58:a
++°Ü F 59:a
++°Ý F 60:a
++°Þ F 61:a
++°ß F 62:a
++°à F 63:a
++°á F 64:a
++°â F 65:a
++°ã F 66:a
++°ä F 67:a
++°å F 68:a
++°æ F 69:a
++°ç F 70:a
++°è F 71:a
++°é F 72:a
++°ê F 73:a
++°ë F 74:a
++°ì F 75:a
++°í F 76:a
++°î F 77:a
++°ï F 78:a
++°ð F 79:a
++°ñ F 80:a
++°ò F 81:a
++°ó F 82:a
++°ô F 83:a
++°õ F 84:a
++°ö F 85:a
++°÷ F 86:a
++°ø F 87:a
++°ù F 88:a
++°ú F 89:a
++°û F 90:a
++°ü F 91:a
++°ý F 92:a
++°þ F 93:a
++±¡ F 94:a
++±¢ F 95:a
++±£ F 96:a
++±¤ F 97:a
++±¥ F 98:a
++±¦ F 99:a
++±§ F 100:a
++±¨ F 101:a
++±© F 102:a
++±ª F 103:a
++±« F 104:a
++±¬ F 105:a
++± F 106:a
++±® F 107:a
++±¯ F 108:a
++±° F 109:a
++±± F 110:a
++±² F 111:a
++±³ F 112:a
++±´ F 113:a
++±µ F 114:a
++±¶ F 115:a
++±· F 116:a
++±¸ F 117:a
++±¹ F 118:a
++±º F 119:a
++±» F 120:a
++±¼ F 121:a
++±½ F 122:a
++±¾ F 123:a
++±¿ F 124:a
++±À F 125:a
++±Á F 126:a
++±Â F 127:a
++±Ã F 128:a
++±Ä F 129:a
++±Å F 130:a
++±Æ F 131:a
++±Ç F 132:a
++±È F 133:a
++±É F 134:a
++±Ê F 135:a
++±Ë F 136:a
++±Ì F 137:a
++±Í F 138:a
++±Î F 139:a
++±Ï F 140:a
++±Ð F 141:a
++±Ñ F 142:a
++±Ò F 143:a
++±Ó F 144:a
++±Ô F 145:a
++±Õ F 146:a
++±Ö F 147:a
++±× F 148:a
++±Ø F 149:a
++±Ù F 150:a
++±Ú F 151:a
++±Û F 152:a
++±Ü F 153:a
++±Ý F 154:a
++±Þ F 155:a
++±ß F 156:a
++±à F 157:a
++±á F 158:a
++±â F 159:a
++±ã F 160:a
++±ä F 161:a
++±å F 162:a
++±æ F 163:a
++±ç F 164:a
++±è F 165:a
++±é F 166:a
++±ê F 167:a
++±ë F 168:a
++±ì F 169:a
++±í F 170:a
++±î F 171:a
++±ï F 172:a
++±ð F 173:a
++±ñ F 174:a
++±ò F 175:a
++±ó F 176:a
++±ô F 177:a
++±õ F 178:a
++±ö F 179:a
++±÷ F 180:a
++±ø F 181:a
++±ù F 182:a
++±ú F 183:a
++±û F 184:a
++±ü F 185:a
++±ý F 186:a
++±þ F 187:a
++²¡ F 188:a
++²¢ F 189:a
++²£ F 190:a
++²¤ F 191:a
++²¥ F 192:a
++²¦ F 193:a
++²§ F 194:a
++²¨ F 195:a
++²© F 196:a
++²ª F 197:a
++²« F 198:a
++²¬ F 199:a
++² F 200:a
++²® F 201:a
++²¯ F 202:a
++²° F 203:a
++²± F 204:a
++²² F 205:a
++²³ F 206:a
++²´ F 207:a
++²µ F 208:a
++²¶ F 209:a
++²· F 210:a
++²¸ F 211:a
++²¹ F 212:a
++²º F 213:a
++²» F 214:a
++²¼ F 215:a
++²½ F 216:a
++²¾ F 217:a
++²¿ F 218:a
++²À F 219:a
++²Á F 220:a
++²Â F 221:a
++²Ã F 222:a
++²Ä F 223:a
++²Å F 224:a
++²Æ F 225:a
++²Ç F 226:a
++²È F 227:a
++²É F 228:a
++²Ê F 229:a
++²Ë F 230:a
++²Ì F 231:a
++²Í F 232:a
++²Î F 233:a
++²Ï F 234:a
++²Ð F 235:a
++²Ñ F 236:a
++²Ò F 237:a
++²Ó F 238:a
++²Ô F 239:a
++²Õ F 240:a
++²Ö F 241:a
++²× F 242:a
++²Ø F 243:a
++²Ù F 244:a
++²Ú F 245:a
++²Û F 246:a
++²Ü F 247:a
++²Ý F 248:a
++²Þ F 249:a
++²ß F 250:a
++²à F 251:a
++²á F 252:a
++²â F 253:a
++²ã F 254:a
++²ä F 255:a
++²å F 0:b
++²æ F 1:b
++²ç F 2:b
++²è F 3:b
++²é F 4:b
++²ê F 5:b
++²ë F 6:b
++²ì F 7:b
++²í F 8:b
++²î F 9:b
++²ï F 10:b
++²ð F 11:b
++²ñ F 12:b
++²ò F 13:b
++²ó F 14:b
++²ô F 15:b
++²õ F 16:b
++²ö F 17:b
++²÷ F 18:b
++²ø F 19:b
++²ù F 20:b
++²ú F 21:b
++²û F 22:b
++²ü F 23:b
++²ý F 24:b
++²þ F 25:b
++³¡ F 26:b
++³¢ F 27:b
++³£ F 28:b
++³¤ F 29:b
++³¥ F 30:b
++³¦ F 31:b
++³§ F 32:b
++³¨ F 33:b
++³© F 34:b
++³ª F 35:b
++³« F 36:b
++³¬ F 37:b
++³ F 38:b
++³® F 39:b
++³¯ F 40:b
++³° F 41:b
++³± F 42:b
++³² F 43:b
++³³ F 44:b
++³´ F 45:b
++³µ F 46:b
++³¶ F 47:b
++³· F 48:b
++³¸ F 49:b
++³¹ F 50:b
++³º F 51:b
++³» F 52:b
++³¼ F 53:b
++³½ F 54:b
++³¾ F 55:b
++³¿ F 56:b
++³À F 57:b
++³Á F 58:b
++³Â F 59:b
++³Ã F 60:b
++³Ä F 61:b
++³Å F 62:b
++³Æ F 63:b
++³Ç F 64:b
++³È F 65:b
++³É F 66:b
++³Ê F 67:b
++³Ë F 68:b
++³Ì F 69:b
++³Í F 70:b
++³Î F 71:b
++³Ï F 72:b
++³Ð F 73:b
++³Ñ F 74:b
++³Ò F 75:b
++³Ó F 76:b
++³Ô F 77:b
++³Õ F 78:b
++³Ö F 79:b
++³× F 80:b
++³Ø F 81:b
++³Ù F 82:b
++³Ú F 83:b
++³Û F 84:b
++³Ü F 85:b
++³Ý F 86:b
++³Þ F 87:b
++³ß F 88:b
++³à F 89:b
++³á F 90:b
++³â F 91:b
++³ã F 92:b
++³ä F 93:b
++³å F 94:b
++³æ F 95:b
++³ç F 96:b
++³è F 97:b
++³é F 98:b
++³ê F 99:b
++³ë F 100:b
++³ì F 101:b
++³í F 102:b
++³î F 103:b
++³ï F 104:b
++³ð F 105:b
++³ñ F 106:b
++³ò F 107:b
++³ó F 108:b
++³ô F 109:b
++³õ F 110:b
++³ö F 111:b
++³÷ F 112:b
++³ø F 113:b
++³ù F 114:b
++³ú F 115:b
++³û F 116:b
++³ü F 117:b
++³ý F 118:b
++³þ F 119:b
++´¡ F 120:b
++´¢ F 121:b
++´£ F 122:b
++´¤ F 123:b
++´¥ F 124:b
++´¦ F 125:b
++´§ F 126:b
++´¨ F 127:b
++´© F 128:b
++´ª F 129:b
++´« F 130:b
++´¬ F 131:b
++´ F 132:b
++´® F 133:b
++´¯ F 134:b
++´° F 135:b
++´± F 136:b
++´² F 137:b
++´³ F 138:b
++´´ F 139:b
++´µ F 140:b
++´¶ F 141:b
++´· F 142:b
++´¸ F 143:b
++´¹ F 144:b
++´º F 145:b
++´» F 146:b
++´¼ F 147:b
++´½ F 148:b
++´¾ F 149:b
++´¿ F 150:b
++´À F 151:b
++´Á F 152:b
++´Â F 153:b
++´Ã F 154:b
++´Ä F 155:b
++´Å F 156:b
++´Æ F 157:b
++´Ç F 158:b
++´È F 159:b
++´É F 160:b
++´Ê F 161:b
++´Ë F 162:b
++´Ì F 163:b
++´Í F 164:b
++´Î F 165:b
++´Ï F 166:b
++´Ð F 167:b
++´Ñ F 168:b
++´Ò F 169:b
++´Ó F 170:b
++´Ô F 171:b
++´Õ F 172:b
++´Ö F 173:b
++´× F 174:b
++´Ø F 175:b
++´Ù F 176:b
++´Ú F 177:b
++´Û F 178:b
++´Ü F 179:b
++´Ý F 180:b
++´Þ F 181:b
++´ß F 182:b
++´à F 183:b
++´á F 184:b
++´â F 185:b
++´ã F 186:b
++´ä F 187:b
++´å F 188:b
++´æ F 189:b
++´ç F 190:b
++´è F 191:b
++´é F 192:b
++´ê F 193:b
++´ë F 194:b
++´ì F 195:b
++´í F 196:b
++´î F 197:b
++´ï F 198:b
++´ð F 199:b
++´ñ F 200:b
++´ò F 201:b
++´ó F 202:b
++´ô F 203:b
++´õ F 204:b
++´ö F 205:b
++´÷ F 206:b
++´ø F 207:b
++´ù F 208:b
++´ú F 209:b
++´û F 210:b
++´ü F 211:b
++´ý F 212:b
++´þ F 213:b
++µ¡ F 214:b
++µ¢ F 215:b
++µ£ F 216:b
++µ¤ F 217:b
++µ¥ F 218:b
++µ¦ F 219:b
++µ§ F 220:b
++µ¨ F 221:b
++µ© F 222:b
++µª F 223:b
++µ« F 224:b
++µ¬ F 225:b
++µ F 226:b
++µ® F 227:b
++µ¯ F 228:b
++µ° F 229:b
++µ± F 230:b
++µ² F 231:b
++µ³ F 232:b
++µ´ F 233:b
++µµ F 234:b
++µ¶ F 235:b
++µ· F 236:b
++µ¸ F 237:b
++µ¹ F 238:b
++µº F 239:b
++µ» F 240:b
++µ¼ F 241:b
++µ½ F 242:b
++µ¾ F 243:b
++µ¿ F 244:b
++µÀ F 245:b
++µÁ F 246:b
++µÂ F 247:b
++µÃ F 248:b
++µÄ F 249:b
++µÅ F 250:b
++µÆ F 251:b
++µÇ F 252:b
++µÈ F 253:b
++µÉ F 254:b
++µÊ F 255:b
++µË F 0:c
++µÌ F 1:c
++µÍ F 2:c
++µÎ F 3:c
++µÏ F 4:c
++µÐ F 5:c
++µÑ F 6:c
++µÒ F 7:c
++µÓ F 8:c
++µÔ F 9:c
++µÕ F 10:c
++µÖ F 11:c
++µ× F 12:c
++µØ F 13:c
++µÙ F 14:c
++µÚ F 15:c
++µÛ F 16:c
++µÜ F 17:c
++µÝ F 18:c
++µÞ F 19:c
++µß F 20:c
++µà F 21:c
++µá F 22:c
++µâ F 23:c
++µã F 24:c
++µä F 25:c
++µå F 26:c
++µæ F 27:c
++µç F 28:c
++µè F 29:c
++µé F 30:c
++µê F 31:c
++µë F 32:c
++µì F 33:c
++µí F 34:c
++µî F 35:c
++µï F 36:c
++µð F 37:c
++µñ F 38:c
++µò F 39:c
++µó F 40:c
++µô F 41:c
++µõ F 42:c
++µö F 43:c
++µ÷ F 44:c
++µø F 45:c
++µù F 46:c
++µú F 47:c
++µû F 48:c
++µü F 49:c
++µý F 50:c
++µþ F 51:c
++¶¡ F 52:c
++¶¢ F 53:c
++¶£ F 54:c
++¶¤ F 55:c
++¶¥ F 56:c
++¶¦ F 57:c
++¶§ F 58:c
++¶¨ F 59:c
++¶© F 60:c
++¶ª F 61:c
++¶« F 62:c
++¶¬ F 63:c
++¶ F 64:c
++¶® F 65:c
++¶¯ F 66:c
++¶° F 67:c
++¶± F 68:c
++¶² F 69:c
++¶³ F 70:c
++¶´ F 71:c
++¶µ F 72:c
++¶¶ F 73:c
++¶· F 74:c
++¶¸ F 75:c
++¶¹ F 76:c
++¶º F 77:c
++¶» F 78:c
++¶¼ F 79:c
++¶½ F 80:c
++¶¾ F 81:c
++¶¿ F 82:c
++¶À F 83:c
++¶Á F 84:c
++¶Â F 85:c
++¶Ã F 86:c
++¶Ä F 87:c
++¶Å F 88:c
++¶Æ F 89:c
++¶Ç F 90:c
++¶È F 91:c
++¶É F 92:c
++¶Ê F 93:c
++¶Ë F 94:c
++¶Ì F 95:c
++¶Í F 96:c
++¶Î F 97:c
++¶Ï F 98:c
++¶Ð F 99:c
++¶Ñ F 100:c
++¶Ò F 101:c
++¶Ó F 102:c
++¶Ô F 103:c
++¶Õ F 104:c
++¶Ö F 105:c
++¶× F 106:c
++¶Ø F 107:c
++¶Ù F 108:c
++¶Ú F 109:c
++¶Û F 110:c
++¶Ü F 111:c
++¶Ý F 112:c
++¶Þ F 113:c
++¶ß F 114:c
++¶à F 115:c
++¶á F 116:c
++¶â F 117:c
++¶ã F 118:c
++¶ä F 119:c
++¶å F 120:c
++¶æ F 121:c
++¶ç F 122:c
++¶è F 123:c
++¶é F 124:c
++¶ê F 125:c
++¶ë F 126:c
++¶ì F 127:c
++¶í F 128:c
++¶î F 129:c
++¶ï F 130:c
++¶ð F 131:c
++¶ñ F 132:c
++¶ò F 133:c
++¶ó F 134:c
++¶ô F 135:c
++¶õ F 136:c
++¶ö F 137:c
++¶÷ F 138:c
++¶ø F 139:c
++¶ù F 140:c
++¶ú F 141:c
++¶û F 142:c
++¶ü F 143:c
++¶ý F 144:c
++¶þ F 145:c
++·¡ F 146:c
++·¢ F 147:c
++·£ F 148:c
++·¤ F 149:c
++·¥ F 150:c
++·¦ F 151:c
++·§ F 152:c
++·¨ F 153:c
++·© F 154:c
++·ª F 155:c
++·« F 156:c
++·¬ F 157:c
++· F 158:c
++·® F 159:c
++·¯ F 160:c
++·° F 161:c
++·± F 162:c
++·² F 163:c
++·³ F 164:c
++·´ F 165:c
++·µ F 166:c
++·¶ F 167:c
++·· F 168:c
++·¸ F 169:c
++·¹ F 170:c
++·º F 171:c
++·» F 172:c
++·¼ F 173:c
++·½ F 174:c
++·¾ F 175:c
++·¿ F 176:c
++·À F 177:c
++·Á F 178:c
++·Â F 179:c
++·Ã F 180:c
++·Ä F 181:c
++·Å F 182:c
++·Æ F 183:c
++·Ç F 184:c
++·È F 185:c
++·É F 186:c
++·Ê F 187:c
++·Ë F 188:c
++·Ì F 189:c
++·Í F 190:c
++·Î F 191:c
++·Ï F 192:c
++·Ð F 193:c
++·Ñ F 194:c
++·Ò F 195:c
++·Ó F 196:c
++·Ô F 197:c
++·Õ F 198:c
++·Ö F 199:c
++·× F 200:c
++·Ø F 201:c
++·Ù F 202:c
++·Ú F 203:c
++·Û F 204:c
++·Ü F 205:c
++·Ý F 206:c
++·Þ F 207:c
++·ß F 208:c
++·à F 209:c
++·á F 210:c
++·â F 211:c
++·ã F 212:c
++·ä F 213:c
++·å F 214:c
++·æ F 215:c
++·ç F 216:c
++·è F 217:c
++·é F 218:c
++·ê F 219:c
++·ë F 220:c
++·ì F 221:c
++·í F 222:c
++·î F 223:c
++·ï F 224:c
++·ð F 225:c
++·ñ F 226:c
++·ò F 227:c
++·ó F 228:c
++·ô F 229:c
++·õ F 230:c
++·ö F 231:c
++·÷ F 232:c
++·ø F 233:c
++·ù F 234:c
++·ú F 235:c
++·û F 236:c
++·ü F 237:c
++·ý F 238:c
++·þ F 239:c
++¸¡ F 240:c
++¸¢ F 241:c
++¸£ F 242:c
++¸¤ F 243:c
++¸¥ F 244:c
++¸¦ F 245:c
++¸§ F 246:c
++¸¨ F 247:c
++¸© F 248:c
++¸ª F 249:c
++¸« F 250:c
++¸¬ F 251:c
++¸ F 252:c
++¸® F 253:c
++¸¯ F 254:c
++¸° F 255:c
++¸± F 0:d
++¸² F 1:d
++¸³ F 2:d
++¸´ F 3:d
++¸µ F 4:d
++¸¶ F 5:d
++¸· F 6:d
++¸¸ F 7:d
++¸¹ F 8:d
++¸º F 9:d
++¸» F 10:d
++¸¼ F 11:d
++¸½ F 12:d
++¸¾ F 13:d
++¸¿ F 14:d
++¸À F 15:d
++¸Á F 16:d
++¸Â F 17:d
++¸Ã F 18:d
++¸Ä F 19:d
++¸Å F 20:d
++¸Æ F 21:d
++¸Ç F 22:d
++¸È F 23:d
++¸É F 24:d
++¸Ê F 25:d
++¸Ë F 26:d
++¸Ì F 27:d
++¸Í F 28:d
++¸Î F 29:d
++¸Ï F 30:d
++¸Ð F 31:d
++¸Ñ F 32:d
++¸Ò F 33:d
++¸Ó F 34:d
++¸Ô F 35:d
++¸Õ F 36:d
++¸Ö F 37:d
++¸× F 38:d
++¸Ø F 39:d
++¸Ù F 40:d
++¸Ú F 41:d
++¸Û F 42:d
++¸Ü F 43:d
++¸Ý F 44:d
++¸Þ F 45:d
++¸ß F 46:d
++¸à F 47:d
++¸á F 48:d
++¸â F 49:d
++¸ã F 50:d
++¸ä F 51:d
++¸å F 52:d
++¸æ F 53:d
++¸ç F 54:d
++¸è F 55:d
++¸é F 56:d
++¸ê F 57:d
++¸ë F 58:d
++¸ì F 59:d
++¸í F 60:d
++¸î F 61:d
++¸ï F 62:d
++¸ð F 63:d
++¸ñ F 64:d
++¸ò F 65:d
++¸ó F 66:d
++¸ô F 67:d
++¸õ F 68:d
++¸ö F 69:d
++¸÷ F 70:d
++¸ø F 71:d
++¸ù F 72:d
++¸ú F 73:d
++¸û F 74:d
++¸ü F 75:d
++¸ý F 76:d
++¸þ F 77:d
++¹¡ F 78:d
++¹¢ F 79:d
++¹£ F 80:d
++¹¤ F 81:d
++¹¥ F 82:d
++¹¦ F 83:d
++¹§ F 84:d
++¹¨ F 85:d
++¹© F 86:d
++¹ª F 87:d
++¹« F 88:d
++¹¬ F 89:d
++¹ F 90:d
++¹® F 91:d
++¹¯ F 92:d
++¹° F 93:d
++¹± F 94:d
++¹² F 95:d
++¹³ F 96:d
++¹´ F 97:d
++¹µ F 98:d
++¹¶ F 99:d
++¹· F 100:d
++¹¸ F 101:d
++¹¹ F 102:d
++¹º F 103:d
++¹» F 104:d
++¹¼ F 105:d
++¹½ F 106:d
++¹¾ F 107:d
++¹¿ F 108:d
++¹À F 109:d
++¹Á F 110:d
++¹Â F 111:d
++¹Ã F 112:d
++¹Ä F 113:d
++¹Å F 114:d
++¹Æ F 115:d
++¹Ç F 116:d
++¹È F 117:d
++¹É F 118:d
++¹Ê F 119:d
++¹Ë F 120:d
++¹Ì F 121:d
++¹Í F 122:d
++¹Î F 123:d
++¹Ï F 124:d
++¹Ð F 125:d
++¹Ñ F 126:d
++¹Ò F 127:d
++¹Ó F 128:d
++¹Ô F 129:d
++¹Õ F 130:d
++¹Ö F 131:d
++¹× F 132:d
++¹Ø F 133:d
++¹Ù F 134:d
++¹Ú F 135:d
++¹Û F 136:d
++¹Ü F 137:d
++¹Ý F 138:d
++¹Þ F 139:d
++¹ß F 140:d
++¹à F 141:d
++¹á F 142:d
++¹â F 143:d
++¹ã F 144:d
++¹ä F 145:d
++¹å F 146:d
++¹æ F 147:d
++¹ç F 148:d
++¹è F 149:d
++¹é F 150:d
++¹ê F 151:d
++¹ë F 152:d
++¹ì F 153:d
++¹í F 154:d
++¹î F 155:d
++¹ï F 156:d
++¹ð F 157:d
++¹ñ F 158:d
++¹ò F 159:d
++¹ó F 160:d
++¹ô F 161:d
++¹õ F 162:d
++¹ö F 163:d
++¹÷ F 164:d
++¹ø F 165:d
++¹ù F 166:d
++¹ú F 167:d
++¹û F 168:d
++¹ü F 169:d
++¹ý F 170:d
++¹þ F 171:d
++º¡ F 172:d
++º¢ F 173:d
++º£ F 174:d
++º¤ F 175:d
++º¥ F 176:d
++º¦ F 177:d
++º§ F 178:d
++º¨ F 179:d
++º© F 180:d
++ºª F 181:d
++º« F 182:d
++º¬ F 183:d
++º F 184:d
++º® F 185:d
++º¯ F 186:d
++º° F 187:d
++º± F 188:d
++º² F 189:d
++º³ F 190:d
++º´ F 191:d
++ºµ F 192:d
++º¶ F 193:d
++º· F 194:d
++º¸ F 195:d
++º¹ F 196:d
++ºº F 197:d
++º» F 198:d
++º¼ F 199:d
++º½ F 200:d
++º¾ F 201:d
++º¿ F 202:d
++ºÀ F 203:d
++ºÁ F 204:d
++ºÂ F 205:d
++ºÃ F 206:d
++ºÄ F 207:d
++ºÅ F 208:d
++ºÆ F 209:d
++ºÇ F 210:d
++ºÈ F 211:d
++ºÉ F 212:d
++ºÊ F 213:d
++ºË F 214:d
++ºÌ F 215:d
++ºÍ F 216:d
++ºÎ F 217:d
++ºÏ F 218:d
++ºÐ F 219:d
++ºÑ F 220:d
++ºÒ F 221:d
++ºÓ F 222:d
++ºÔ F 223:d
++ºÕ F 224:d
++ºÖ F 225:d
++º× F 226:d
++ºØ F 227:d
++ºÙ F 228:d
++ºÚ F 229:d
++ºÛ F 230:d
++ºÜ F 231:d
++ºÝ F 232:d
++ºÞ F 233:d
++ºß F 234:d
++ºà F 235:d
++ºá F 236:d
++ºâ F 237:d
++ºã F 238:d
++ºä F 239:d
++ºå F 240:d
++ºæ F 241:d
++ºç F 242:d
++ºè F 243:d
++ºé F 244:d
++ºê F 245:d
++ºë F 246:d
++ºì F 247:d
++ºí F 248:d
++ºî F 249:d
++ºï F 250:d
++ºð F 251:d
++ºñ F 252:d
++ºò F 253:d
++ºó F 254:d
++ºô F 255:d
++ºõ F 0:e
++ºö F 1:e
++º÷ F 2:e
++ºø F 3:e
++ºù F 4:e
++ºú F 5:e
++ºû F 6:e
++ºü F 7:e
++ºý F 8:e
++ºþ F 9:e
++»¡ F 10:e
++Ȣ F 11:e
++ȣ F 12:e
++»¤ F 13:e
++ȴ F 14:e
++»¦ F 15:e
++Ȥ F 16:e
++Ȭ F 17:e
++»© F 18:e
++Ȼ F 19:e
++»« F 20:e
++»¬ F 21:e
++» F 22:e
++»® F 23:e
++»¯ F 24:e
++»° F 25:e
++»± F 26:e
++»² F 27:e
++»³ F 28:e
++»´ F 29:e
++»µ F 30:e
++Ȧ F 31:e
++»· F 32:e
++»¸ F 33:e
++»¹ F 34:e
++ȼ F 35:e
++»» F 36:e
++»¼ F 37:e
++»½ F 38:e
++»¾ F 39:e
++»¿ F 40:e
++»À F 41:e
++»Á F 42:e
++»Â F 43:e
++»Ã F 44:e
++Ȁ F 45:e
++ȁ F 46:e
++Ȯ F 47:e
++Ȃ F 48:e
++»È F 49:e
++ȃ F 50:e
++»Ê F 51:e
++»Ë F 52:e
++»Ì F 53:e
++»Í F 54:e
++»Î F 55:e
++»Ï F 56:e
++»Ð F 57:e
++Ȅ F 58:e
++»Ò F 59:e
++»Ó F 60:e
++»Ô F 61:e
++»Õ F 62:e
++»Ö F 63:e
++»× F 64:e
++ȯ F 65:e
++»Ù F 66:e
++»Ú F 67:e
++»Û F 68:e
++Ȇ F 69:e
++»Ý F 70:e
++»Þ F 71:e
++ȧ F 72:e
++Ȉ F 73:e
++ȇ F 74:e
++ȉ F 75:e
++ȋ F 76:e
++Ȋ F 77:e
++Ȍ F 78:e
++Ⱦ F 79:e
++ȍ F 80:e
++ȏ F 81:e
++Ȏ F 82:e
++Ȑ F 83:e
++ȑ F 84:e
++ȓ F 85:e
++Ȓ F 86:e
++Ȕ F 87:e
++ȕ F 88:e
++»ð F 89:e
++Ȗ F 90:e
++»ò F 91:e
++»ó F 92:e
++»ô F 93:e
++»õ F 94:e
++»ö F 95:e
++»÷ F 96:e
++»ø F 97:e
++»ù F 98:e
++»ú F 99:e
++»û F 100:e
++ȟ F 101:e
++»ý F 102:e
++»þ F 103:e
++¼¡ F 104:e
++¼¢ F 105:e
++¼£ F 106:e
++¼¤ F 107:e
++¼¥ F 108:e
++¼¦ F 109:e
++¼§ F 110:e
++¼¨ F 111:e
++¼© F 112:e
++¼ª F 113:e
++¼« F 114:e
++¼¬ F 115:e
++¼ F 116:e
++¼® F 117:e
++¼¯ F 118:e
++¼° F 119:e
++¼± F 120:e
++¼² F 121:e
++¼³ F 122:e
++¼´ F 123:e
++¼µ F 124:e
++¼¶ F 125:e
++¼· F 126:e
++¼¸ F 127:e
++¼¹ F 128:e
++¼º F 129:e
++¼» F 130:e
++¼¼ F 131:e
++¼½ F 132:e
++¼¾ F 133:e
++¼¿ F 134:e
++¼À F 135:e
++¼Á F 136:e
++¼Â F 137:e
++¼Ã F 138:e
++¼Ä F 139:e
++¼Å F 140:e
++¼Æ F 141:e
++¼Ç F 142:e
++¼È F 143:e
++¼É F 144:e
++¼Ê F 145:e
++¼Ë F 146:e
++¼Ì F 147:e
++¼Í F 148:e
++¼Î F 149:e
++¼Ï F 150:e
++¼Ð F 151:e
++¼Ñ F 152:e
++¼Ò F 153:e
++¼Ó F 154:e
++¼Ô F 155:e
++¼Õ F 156:e
++¼Ö F 157:e
++¼× F 158:e
++¼Ø F 159:e
++¼Ù F 160:e
++¼Ú F 161:e
++¼Û F 162:e
++¼Ü F 163:e
++¼Ý F 164:e
++¼Þ F 165:e
++¼ß F 166:e
++¼à F 167:e
++¼á F 168:e
++¼â F 169:e
++¼ã F 170:e
++¼ä F 171:e
++¼å F 172:e
++¼æ F 173:e
++¼ç F 174:e
++¼è F 175:e
++¼é F 176:e
++¼ê F 177:e
++¼ë F 178:e
++¼ì F 179:e
++¼í F 180:e
++¼î F 181:e
++¼ï F 182:e
++¼ð F 183:e
++¼ñ F 184:e
++¼ò F 185:e
++¼ó F 186:e
++¼ô F 187:e
++¼õ F 188:e
++¼ö F 189:e
++¼÷ F 190:e
++¼ø F 191:e
++¼ù F 192:e
++¼ú F 193:e
++¼û F 194:e
++¼ü F 195:e
++¼ý F 196:e
++¼þ F 197:e
++½¡ F 198:e
++½¢ F 199:e
++½£ F 200:e
++½¤ F 201:e
++½¥ F 202:e
++½¦ F 203:e
++½§ F 204:e
++½¨ F 205:e
++½© F 206:e
++½ª F 207:e
++½« F 208:e
++½¬ F 209:e
++½ F 210:e
++½® F 211:e
++½¯ F 212:e
++½° F 213:e
++½± F 214:e
++½² F 215:e
++½³ F 216:e
++½´ F 217:e
++½µ F 218:e
++½¶ F 219:e
++½· F 220:e
++½¸ F 221:e
++½¹ F 222:e
++½º F 223:e
++½» F 224:e
++½¼ F 225:e
++½½ F 226:e
++½¾ F 227:e
++½¿ F 228:e
++½À F 229:e
++½Á F 230:e
++½Â F 231:e
++½Ã F 232:e
++½Ä F 233:e
++½Å F 234:e
++½Æ F 235:e
++½Ç F 236:e
++½È F 237:e
++½É F 238:e
++½Ê F 239:e
++½Ë F 240:e
++½Ì F 241:e
++½Í F 242:e
++½Î F 243:e
++½Ï F 244:e
++½Ð F 245:e
++½Ñ F 246:e
++½Ò F 247:e
++½Ó F 248:e
++½Ô F 249:e
++½Õ F 250:e
++½Ö F 251:e
++½× F 252:e
++½Ø F 253:e
++½Ù F 254:e
++½Ú F 255:e
++½Û F 0:f
++½Ü F 1:f
++½Ý F 2:f
++½Þ F 3:f
++½ß F 4:f
++½à F 5:f
++½á F 6:f
++½â F 7:f
++½ã F 8:f
++½ä F 9:f
++½å F 10:f
++½æ F 11:f
++½ç F 12:f
++½è F 13:f
++½é F 14:f
++½ê F 15:f
++½ë F 16:f
++½ì F 17:f
++½í F 18:f
++½î F 19:f
++½ï F 20:f
++½ð F 21:f
++½ñ F 22:f
++½ò F 23:f
++½ó F 24:f
++½ô F 25:f
++½õ F 26:f
++½ö F 27:f
++½÷ F 28:f
++½ø F 29:f
++½ù F 30:f
++½ú F 31:f
++½û F 32:f
++½ü F 33:f
++½ý F 34:f
++½þ F 35:f
++¾¡ F 36:f
++¾¢ F 37:f
++¾£ F 38:f
++¾¤ F 39:f
++¾¥ F 40:f
++¾¦ F 41:f
++¾§ F 42:f
++¾¨ F 43:f
++¾© F 44:f
++¾ª F 45:f
++¾« F 46:f
++¾¬ F 47:f
++¾ F 48:f
++¾® F 49:f
++¾¯ F 50:f
++¾° F 51:f
++¾± F 52:f
++¾² F 53:f
++¾³ F 54:f
++¾´ F 55:f
++¾µ F 56:f
++¾¶ F 57:f
++¾· F 58:f
++¾¸ F 59:f
++¾¹ F 60:f
++¾º F 61:f
++¾» F 62:f
++¾¼ F 63:f
++¾½ F 64:f
++¾¾ F 65:f
++¾¿ F 66:f
++¾À F 67:f
++¾Á F 68:f
++¾Â F 69:f
++¾Ã F 70:f
++¾Ä F 71:f
++¾Å F 72:f
++¾Æ F 73:f
++¾Ç F 74:f
++¾È F 75:f
++¾É F 76:f
++¾Ê F 77:f
++¾Ë F 78:f
++¾Ì F 79:f
++¾Í F 80:f
++¾Î F 81:f
++¾Ï F 82:f
++¾Ð F 83:f
++¾Ñ F 84:f
++¾Ò F 85:f
++¾Ó F 86:f
++¾Ô F 87:f
++¾Õ F 88:f
++¾Ö F 89:f
++¾× F 90:f
++¾Ø F 91:f
++¾Ù F 92:f
++¾Ú F 93:f
++¾Û F 94:f
++¾Ü F 95:f
++¾Ý F 96:f
++¾Þ F 97:f
++¾ß F 98:f
++¾à F 99:f
++¾á F 100:f
++¾â F 101:f
++¾ã F 102:f
++¾ä F 103:f
++¾å F 104:f
++¾æ F 105:f
++¾ç F 106:f
++¾è F 107:f
++¾é F 108:f
++¾ê F 109:f
++¾ë F 110:f
++¾ì F 111:f
++¾í F 112:f
++¾î F 113:f
++¾ï F 114:f
++¾ð F 115:f
++¾ñ F 116:f
++¾ò F 117:f
++¾ó F 118:f
++¾ô F 119:f
++¾õ F 120:f
++¾ö F 121:f
++¾÷ F 122:f
++¾ø F 123:f
++¾ù F 124:f
++¾ú F 125:f
++¾û F 126:f
++¾ü F 127:f
++¾ý F 128:f
++¾þ F 129:f
++¿¡ F 130:f
++¿¢ F 131:f
++¿£ F 132:f
++¿¤ F 133:f
++¿¥ F 134:f
++¿¦ F 135:f
++¿§ F 136:f
++¿¨ F 137:f
++¿© F 138:f
++¿ª F 139:f
++¿« F 140:f
++¿¬ F 141:f
++¿ F 142:f
++¿® F 143:f
++¿¯ F 144:f
++¿° F 145:f
++¿± F 146:f
++¿² F 147:f
++¿³ F 148:f
++¿´ F 149:f
++¿µ F 150:f
++¿¶ F 151:f
++¿· F 152:f
++¿¸ F 153:f
++¿¹ F 154:f
++¿º F 155:f
++¿» F 156:f
++¿¼ F 157:f
++¿½ F 158:f
++¿¾ F 159:f
++¿¿ F 160:f
++¿À F 161:f
++¿Á F 162:f
++¿Â F 163:f
++¿Ã F 164:f
++¿Ä F 165:f
++¿Å F 166:f
++¿Æ F 167:f
++¿Ç F 168:f
++¿È F 169:f
++¿É F 170:f
++¿Ê F 171:f
++¿Ë F 172:f
++¿Ì F 173:f
++¿Í F 174:f
++¿Î F 175:f
++¿Ï F 176:f
++¿Ð F 177:f
++¿Ñ F 178:f
++¿Ò F 179:f
++¿Ó F 180:f
++¿Ô F 181:f
++¿Õ F 182:f
++¿Ö F 183:f
++¿× F 184:f
++¿Ø F 185:f
++¿Ù F 186:f
++¿Ú F 187:f
++¿Û F 188:f
++¿Ü F 189:f
++¿Ý F 190:f
++¿Þ F 191:f
++¿ß F 192:f
++¿à F 193:f
++¿á F 194:f
++¿â F 195:f
++¿ã F 196:f
++¿ä F 197:f
++¿å F 198:f
++¿æ F 199:f
++¿ç F 200:f
++¿è F 201:f
++¿é F 202:f
++¿ê F 203:f
++¿ë F 204:f
++¿ì F 205:f
++¿í F 206:f
++¿î F 207:f
++¿ï F 208:f
++¿ð F 209:f
++¿ñ F 210:f
++¿ò F 211:f
++¿ó F 212:f
++¿ô F 213:f
++¿õ F 214:f
++¿ö F 215:f
++¿÷ F 216:f
++¿ø F 217:f
++¿ù F 218:f
++¿ú F 219:f
++¿û F 220:f
++¿ü F 221:f
++¿ý F 222:f
++¿þ F 223:f
++À¡ F 224:f
++À¢ F 225:f
++À£ F 226:f
++À¤ F 227:f
++À¥ F 228:f
++À¦ F 229:f
++ˤ F 230:f
++ˬ F 231:f
++À© F 232:f
++˻ F 233:f
++À« F 234:f
++À¬ F 235:f
++À F 236:f
++À® F 237:f
++À¯ F 238:f
++À° F 239:f
++˱ F 240:f
++À² F 241:f
++À³ F 242:f
++À´ F 243:f
++˵ F 244:f
++˦ F 245:f
++À· F 246:f
++À¸ F 247:f
++À¹ F 248:f
++˼ F 249:f
++À» F 250:f
++À¼ F 251:f
++À½ F 252:f
++À¾ F 253:f
++À¿ F 254:f
++ÀÀ F 255:f
++ÀÁ F 0:g
++ÀÂ F 1:g
++ÀÃ F 2:g
++ÀÄ F 3:g
++ÀÅ F 4:g
++ÀÆ F 5:g
++ÀÇ F 6:g
++ÀÈ F 7:g
++ÀÉ F 8:g
++ÀÊ F 9:g
++ÀË F 10:g
++ÀÌ F 11:g
++ÀÍ F 12:g
++ÀÎ F 13:g
++ÀÏ F 14:g
++ÀÐ F 15:g
++ÀÑ F 16:g
++ÀÒ F 17:g
++ÀÓ F 18:g
++ÀÔ F 19:g
++ÀÕ F 20:g
++ÀÖ F 21:g
++À× F 22:g
++ÀØ F 23:g
++ÀÙ F 24:g
++ÀÚ F 25:g
++ÀÛ F 26:g
++ÀÜ F 27:g
++ÀÝ F 28:g
++ÀÞ F 29:g
++Àß F 30:g
++Àà F 31:g
++Àá F 32:g
++Àâ F 33:g
++Àã F 34:g
++Àä F 35:g
++Àå F 36:g
++Àæ F 37:g
++Àç F 38:g
++Àè F 39:g
++Àé F 40:g
++Àê F 41:g
++Àë F 42:g
++Àì F 43:g
++Àí F 44:g
++Àî F 45:g
++Àï F 46:g
++Àð F 47:g
++Àñ F 48:g
++Àò F 49:g
++Àó F 50:g
++Àô F 51:g
++Àõ F 52:g
++Àö F 53:g
++À÷ F 54:g
++Àø F 55:g
++Àù F 56:g
++Àú F 57:g
++Àû F 58:g
++Àü F 59:g
++Àý F 60:g
++Àþ F 61:g
++Á¡ F 62:g
++Á¢ F 63:g
++Á£ F 64:g
++Á¤ F 65:g
++Á¥ F 66:g
++Á¦ F 67:g
++Á§ F 68:g
++Á¨ F 69:g
++Á© F 70:g
++Áª F 71:g
++Á« F 72:g
++Á¬ F 73:g
++Á F 74:g
++Á® F 75:g
++Á¯ F 76:g
++Á° F 77:g
++Á± F 78:g
++Á² F 79:g
++Á³ F 80:g
++Á´ F 81:g
++Áµ F 82:g
++Á¶ F 83:g
++Á· F 84:g
++Á¸ F 85:g
++Á¹ F 86:g
++Áº F 87:g
++Á» F 88:g
++Á¼ F 89:g
++Á½ F 90:g
++Á¾ F 91:g
++Á¿ F 92:g
++ÁÀ F 93:g
++ÁÁ F 94:g
++ÁÂ F 95:g
++ÁÃ F 96:g
++ÁÄ F 97:g
++ÁÅ F 98:g
++ÁÆ F 99:g
++ÁÇ F 100:g
++ÁÈ F 101:g
++ÁÉ F 102:g
++ÁÊ F 103:g
++ÁË F 104:g
++ÁÌ F 105:g
++ÁÍ F 106:g
++ÁÎ F 107:g
++ÁÏ F 108:g
++ÁÐ F 109:g
++ÁÑ F 110:g
++ÁÒ F 111:g
++ÁÓ F 112:g
++ÁÔ F 113:g
++ÁÕ F 114:g
++ÁÖ F 115:g
++Á× F 116:g
++ÁØ F 117:g
++ÁÙ F 118:g
++ÁÚ F 119:g
++ÁÛ F 120:g
++ÁÜ F 121:g
++ÁÝ F 122:g
++ÁÞ F 123:g
++Áß F 124:g
++Áà F 125:g
++Áá F 126:g
++Áâ F 127:g
++Áã F 128:g
++Áä F 129:g
++Áå F 130:g
++Áæ F 131:g
++Áç F 132:g
++Áè F 133:g
++Áé F 134:g
++Áê F 135:g
++Áë F 136:g
++Áì F 137:g
++Áí F 138:g
++Áî F 139:g
++Áï F 140:g
++Áð F 141:g
++Áñ F 142:g
++Áò F 143:g
++Áó F 144:g
++Áô F 145:g
++Áõ F 146:g
++Áö F 147:g
++Á÷ F 148:g
++Áø F 149:g
++Áù F 150:g
++Áú F 151:g
++Áû F 152:g
++Áü F 153:g
++Áý F 154:g
++Áþ F 155:g
++¡ F 156:g
++¢ F 157:g
++£ F 158:g
++¤ F 159:g
++¥ F 160:g
++¦ F 161:g
++§ F 162:g
++¨ F 163:g
++© F 164:g
++ª F 165:g
++« F 166:g
++¬ F 167:g
++ F 168:g
++® F 169:g
++¯ F 170:g
++° F 171:g
++± F 172:g
++² F 173:g
++³ F 174:g
++´ F 175:g
++µ F 176:g
++¶ F 177:g
++· F 178:g
++¸ F 179:g
++¹ F 180:g
++º F 181:g
++» F 182:g
++¼ F 183:g
++½ F 184:g
++¾ F 185:g
++¿ F 186:g
++ÂÀ F 187:g
++ÂÁ F 188:g
++ÂÂ F 189:g
++ÂÃ F 190:g
++ÂÄ F 191:g
++ÂÅ F 192:g
++ÂÆ F 193:g
++ÂÇ F 194:g
++ÂÈ F 195:g
++ÂÉ F 196:g
++ÂÊ F 197:g
++ÂË F 198:g
++ÂÌ F 199:g
++ÂÍ F 200:g
++ÂÎ F 201:g
++ÂÏ F 202:g
++ÂÐ F 203:g
++ÂÑ F 204:g
++ÂÒ F 205:g
++ÂÓ F 206:g
++ÂÔ F 207:g
++ÂÕ F 208:g
++ÂÖ F 209:g
++Â× F 210:g
++ÂØ F 211:g
++ÂÙ F 212:g
++ÂÚ F 213:g
++ÂÛ F 214:g
++ÂÜ F 215:g
++ÂÝ F 216:g
++ÂÞ F 217:g
++Âß F 218:g
++Âà F 219:g
++Âá F 220:g
++Ââ F 221:g
++Âã F 222:g
++Âä F 223:g
++Âå F 224:g
++Âæ F 225:g
++Âç F 226:g
++Âè F 227:g
++Âé F 228:g
++Âê F 229:g
++Âë F 230:g
++Âì F 231:g
++Âí F 232:g
++Âî F 233:g
++Âï F 234:g
++Âð F 235:g
++Âñ F 236:g
++Âò F 237:g
++Âó F 238:g
++Âô F 239:g
++Âõ F 240:g
++Âö F 241:g
++Â÷ F 242:g
++Âø F 243:g
++Âù F 244:g
++Âú F 245:g
++Âû F 246:g
++Âü F 247:g
++Âý F 248:g
++Âþ F 249:g
++á F 250:g
++â F 251:g
++ã F 252:g
++ä F 253:g
++å F 254:g
++æ F 255:g
++ç F 0:h
++è F 1:h
++é F 2:h
++ê F 3:h
++ë F 4:h
++ì F 5:h
++í F 6:h
++î F 7:h
++ï F 8:h
++ð F 9:h
++ñ F 10:h
++ò F 11:h
++ó F 12:h
++ô F 13:h
++õ F 14:h
++ö F 15:h
++÷ F 16:h
++ø F 17:h
++ù F 18:h
++ú F 19:h
++û F 20:h
++ü F 21:h
++ý F 22:h
++þ F 23:h
++ÿ F 24:h
++ÃÀ F 25:h
++ÃÁ F 26:h
++ÃÂ F 27:h
++ÃÃ F 28:h
++ÃÄ F 29:h
++ÃÅ F 30:h
++ÃÆ F 31:h
++ÃÇ F 32:h
++ÃÈ F 33:h
++ÃÉ F 34:h
++ÃÊ F 35:h
++ÃË F 36:h
++ÃÌ F 37:h
++ÃÍ F 38:h
++ÃÎ F 39:h
++ÃÏ F 40:h
++ÃÐ F 41:h
++ÃÑ F 42:h
++ÃÒ F 43:h
++ÃÓ F 44:h
++ÃÔ F 45:h
++ÃÕ F 46:h
++ÃÖ F 47:h
++Ã× F 48:h
++ÃØ F 49:h
++ÃÙ F 50:h
++ÃÚ F 51:h
++ÃÛ F 52:h
++ÃÜ F 53:h
++ÃÝ F 54:h
++ÃÞ F 55:h
++Ãß F 56:h
++Ãà F 57:h
++Ãá F 58:h
++Ãâ F 59:h
++Ãã F 60:h
++Ãä F 61:h
++Ãå F 62:h
++Ãæ F 63:h
++Ãç F 64:h
++Ãè F 65:h
++Ãé F 66:h
++Ãê F 67:h
++Ãë F 68:h
++Ãì F 69:h
++Ãí F 70:h
++Ãî F 71:h
++Ãï F 72:h
++Ãð F 73:h
++Ãñ F 74:h
++Ãò F 75:h
++Ãó F 76:h
++Ãô F 77:h
++Ãõ F 78:h
++Ãö F 79:h
++Ã÷ F 80:h
++Ãø F 81:h
++Ãù F 82:h
++Ãú F 83:h
++Ãû F 84:h
++Ãü F 85:h
++Ãý F 86:h
++Ãþ F 87:h
++ġ F 88:h
++Ģ F 89:h
++ģ F 90:h
++Ĥ F 91:h
++ĥ F 92:h
++Ħ F 93:h
++ħ F 94:h
++Ĩ F 95:h
++ĩ F 96:h
++Ī F 97:h
++ī F 98:h
++Ĭ F 99:h
++ĭ F 100:h
++Į F 101:h
++į F 102:h
++İ F 103:h
++ı F 104:h
++IJ F 105:h
++ij F 106:h
++Ĵ F 107:h
++ĵ F 108:h
++Ķ F 109:h
++ķ F 110:h
++ĸ F 111:h
++Ĺ F 112:h
++ĺ F 113:h
++Ļ F 114:h
++ļ F 115:h
++Ľ F 116:h
++ľ F 117:h
++Ŀ F 118:h
++ÄÀ F 119:h
++ÄÁ F 120:h
++ÄÂ F 121:h
++ÄÃ F 122:h
++ÄÄ F 123:h
++ÄÅ F 124:h
++ÄÆ F 125:h
++ÄÇ F 126:h
++ÄÈ F 127:h
++ÄÉ F 128:h
++ÄÊ F 129:h
++ÄË F 130:h
++ÄÌ F 131:h
++ÄÍ F 132:h
++ÄÎ F 133:h
++ÄÏ F 134:h
++ÄÐ F 135:h
++ÄÑ F 136:h
++ÄÒ F 137:h
++ÄÓ F 138:h
++ÄÔ F 139:h
++ÄÕ F 140:h
++ÄÖ F 141:h
++Ä× F 142:h
++ÄØ F 143:h
++ÄÙ F 144:h
++ÄÚ F 145:h
++ÄÛ F 146:h
++ÄÜ F 147:h
++ÄÝ F 148:h
++ÄÞ F 149:h
++Äß F 150:h
++Äà F 151:h
++Äá F 152:h
++Äâ F 153:h
++Äã F 154:h
++Ää F 155:h
++Äå F 156:h
++Äæ F 157:h
++Äç F 158:h
++Äè F 159:h
++Äé F 160:h
++Äê F 161:h
++Äë F 162:h
++Äì F 163:h
++Äí F 164:h
++Äî F 165:h
++Äï F 166:h
++Äð F 167:h
++Äñ F 168:h
++Äò F 169:h
++Äó F 170:h
++Äô F 171:h
++Äõ F 172:h
++Äö F 173:h
++Ä÷ F 174:h
++Äø F 175:h
++Äù F 176:h
++Äú F 177:h
++Äû F 178:h
++Äü F 179:h
++Äý F 180:h
++Äþ F 181:h
++š F 182:h
++Ţ F 183:h
++ţ F 184:h
++Ť F 185:h
++ť F 186:h
++Ŧ F 187:h
++ŧ F 188:h
++Ũ F 189:h
++ũ F 190:h
++Ū F 191:h
++ū F 192:h
++Ŭ F 193:h
++ŭ F 194:h
++Ů F 195:h
++ů F 196:h
++Ű F 197:h
++ű F 198:h
++Ų F 199:h
++ų F 200:h
++Ŵ F 201:h
++ŵ F 202:h
++Ŷ F 203:h
++ŷ F 204:h
++Ÿ F 205:h
++Ź F 206:h
++ź F 207:h
++Ż F 208:h
++ż F 209:h
++Ž F 210:h
++ž F 211:h
++ſ F 212:h
++ÅÀ F 213:h
++ÅÁ F 214:h
++ÅÂ F 215:h
++ÅÃ F 216:h
++ÅÄ F 217:h
++ÅÅ F 218:h
++ÅÆ F 219:h
++ÅÇ F 220:h
++ÅÈ F 221:h
++ÅÉ F 222:h
++ÅÊ F 223:h
++ÅË F 224:h
++ÅÌ F 225:h
++ÅÍ F 226:h
++ÅÎ F 227:h
++ÅÏ F 228:h
++ÅÐ F 229:h
++ÅÑ F 230:h
++ÅÒ F 231:h
++ÅÓ F 232:h
++ÅÔ F 233:h
++ÅÕ F 234:h
++ÅÖ F 235:h
++Å× F 236:h
++ÅØ F 237:h
++ÅÙ F 238:h
++ÅÚ F 239:h
++ÅÛ F 240:h
++ÅÜ F 241:h
++ÅÝ F 242:h
++ÅÞ F 243:h
++Åß F 244:h
++Åà F 245:h
++Åá F 246:h
++Åâ F 247:h
++Åã F 248:h
++Åä F 249:h
++Åå F 250:h
++Åæ F 251:h
++Åç F 252:h
++Åè F 253:h
++Åé F 254:h
++Åê F 255:h
++Åë F 0:i
++Åì F 1:i
++Åí F 2:i
++Åî F 3:i
++Åï F 4:i
++Åð F 5:i
++Åñ F 6:i
++Åò F 7:i
++Åó F 8:i
++Åô F 9:i
++Åõ F 10:i
++Åö F 11:i
++Å÷ F 12:i
++Åø F 13:i
++Åù F 14:i
++Åú F 15:i
++Åû F 16:i
++Åü F 17:i
++Åý F 18:i
++Åþ F 19:i
++ơ F 20:i
++Ƣ F 21:i
++ƣ F 22:i
++Ƥ F 23:i
++ƥ F 24:i
++Ʀ F 25:i
++Ƨ F 26:i
++ƨ F 27:i
++Ʃ F 28:i
++ƪ F 29:i
++ƫ F 30:i
++Ƭ F 31:i
++ƭ F 32:i
++Ʈ F 33:i
++Ư F 34:i
++ư F 35:i
++Ʊ F 36:i
++Ʋ F 37:i
++Ƴ F 38:i
++ƴ F 39:i
++Ƶ F 40:i
++ƶ F 41:i
++Ʒ F 42:i
++Ƹ F 43:i
++ƹ F 44:i
++ƺ F 45:i
++ƻ F 46:i
++Ƽ F 47:i
++ƽ F 48:i
++ƾ F 49:i
++ƿ F 50:i
++ÆÀ F 51:i
++ÆÁ F 52:i
++ÆÂ F 53:i
++ÆÃ F 54:i
++ÆÄ F 55:i
++ÆÅ F 56:i
++ÆÆ F 57:i
++ÆÇ F 58:i
++ÆÈ F 59:i
++ÆÉ F 60:i
++ÆÊ F 61:i
++ÆË F 62:i
++ÆÌ F 63:i
++ÆÍ F 64:i
++ÆÎ F 65:i
++ÆÏ F 66:i
++ÆÐ F 67:i
++ÆÑ F 68:i
++ÆÒ F 69:i
++ÆÓ F 70:i
++ÆÔ F 71:i
++ÆÕ F 72:i
++ÆÖ F 73:i
++Æ× F 74:i
++ÆØ F 75:i
++ÆÙ F 76:i
++ÆÚ F 77:i
++ÆÛ F 78:i
++ÆÜ F 79:i
++ÆÝ F 80:i
++ÆÞ F 81:i
++Æß F 82:i
++Æà F 83:i
++Æá F 84:i
++Æâ F 85:i
++Æã F 86:i
++Æä F 87:i
++Æå F 88:i
++Ææ F 89:i
++Æç F 90:i
++Æè F 91:i
++Æé F 92:i
++Æê F 93:i
++Æë F 94:i
++Æì F 95:i
++Æí F 96:i
++Æî F 97:i
++Æï F 98:i
++Æð F 99:i
++Æñ F 100:i
++Æò F 101:i
++Æó F 102:i
++Æô F 103:i
++Æõ F 104:i
++Æö F 105:i
++Æ÷ F 106:i
++Æø F 107:i
++Æù F 108:i
++Æú F 109:i
++Æû F 110:i
++Æü F 111:i
++Æý F 112:i
++Æþ F 113:i
++ǡ F 114:i
++Ǣ F 115:i
++ǣ F 116:i
++Ǥ F 117:i
++ǥ F 118:i
++Ǧ F 119:i
++ǧ F 120:i
++Ǩ F 121:i
++ǩ F 122:i
++Ǫ F 123:i
++ǫ F 124:i
++Ǭ F 125:i
++ǭ F 126:i
++Ǯ F 127:i
++ǯ F 128:i
++ǰ F 129:i
++DZ F 130:i
++Dz F 131:i
++dz F 132:i
++Ǵ F 133:i
++ǵ F 134:i
++Ƕ F 135:i
++Ƿ F 136:i
++Ǹ F 137:i
++ǹ F 138:i
++Ǻ F 139:i
++ǻ F 140:i
++Ǽ F 141:i
++ǽ F 142:i
++Ǿ F 143:i
++ǿ F 144:i
++ÇÀ F 145:i
++ÇÁ F 146:i
++ÇÂ F 147:i
++ÇÃ F 148:i
++ÇÄ F 149:i
++ÇÅ F 150:i
++ÇÆ F 151:i
++ÇÇ F 152:i
++ÇÈ F 153:i
++ÇÉ F 154:i
++ÇÊ F 155:i
++ÇË F 156:i
++ÇÌ F 157:i
++ÇÍ F 158:i
++ÇÎ F 159:i
++ÇÏ F 160:i
++ÇÐ F 161:i
++ÇÑ F 162:i
++ÇÒ F 163:i
++ÇÓ F 164:i
++ÇÔ F 165:i
++ÇÕ F 166:i
++ÇÖ F 167:i
++Ç× F 168:i
++ÇØ F 169:i
++ÇÙ F 170:i
++ÇÚ F 171:i
++ÇÛ F 172:i
++ÇÜ F 173:i
++ÇÝ F 174:i
++ÇÞ F 175:i
++Çß F 176:i
++Çà F 177:i
++Çá F 178:i
++Çâ F 179:i
++Çã F 180:i
++Çä F 181:i
++Çå F 182:i
++Çæ F 183:i
++Çç F 184:i
++Çè F 185:i
++Çé F 186:i
++Çê F 187:i
++Çë F 188:i
++Çì F 189:i
++Çí F 190:i
++Çî F 191:i
++Çï F 192:i
++Çð F 193:i
++Çñ F 194:i
++Çò F 195:i
++Çó F 196:i
++Çô F 197:i
++Çõ F 198:i
++Çö F 199:i
++Ç÷ F 200:i
++Çø F 201:i
++Çù F 202:i
++Çú F 203:i
++Çû F 204:i
++Çü F 205:i
++Çý F 206:i
++Çþ F 207:i
++ȡ F 208:i
++Ȣ F 209:i
++ȣ F 210:i
++Ȥ F 211:i
++ȥ F 212:i
++Ȧ F 213:i
++ȧ F 214:i
++Ȩ F 215:i
++ȩ F 216:i
++Ȫ F 217:i
++ȫ F 218:i
++Ȭ F 219:i
++ȭ F 220:i
++Ȯ F 221:i
++ȯ F 222:i
++Ȱ F 223:i
++ȱ F 224:i
++Ȳ F 225:i
++ȳ F 226:i
++ȴ F 227:i
++ȵ F 228:i
++ȶ F 229:i
++ȷ F 230:i
++ȸ F 231:i
++ȹ F 232:i
++Ⱥ F 233:i
++Ȼ F 234:i
++ȼ F 235:i
++Ƚ F 236:i
++Ⱦ F 237:i
++ȿ F 238:i
++ÈÀ F 239:i
++ÈÁ F 240:i
++ÈÂ F 241:i
++ÈÃ F 242:i
++ÈÄ F 243:i
++ÈÅ F 244:i
++ÈÆ F 245:i
++ÈÇ F 246:i
++ÈÈ F 247:i
++ÈÉ F 248:i
++ÈÊ F 249:i
++ÈË F 250:i
++ÈÌ F 251:i
++ÈÍ F 252:i
++ÈÎ F 253:i
++ÈÏ F 254:i
++ÈÐ F 255:i
++ÈÑ F 0:j
++ÈÒ F 1:j
++ÈÓ F 2:j
++ÈÔ F 3:j
++ÈÕ F 4:j
++ÈÖ F 5:j
++È× F 6:j
++ÈØ F 7:j
++ÈÙ F 8:j
++ÈÚ F 9:j
++ÈÛ F 10:j
++ÈÜ F 11:j
++ÈÝ F 12:j
++ÈÞ F 13:j
++Èß F 14:j
++Èà F 15:j
++Èá F 16:j
++Èâ F 17:j
++Èã F 18:j
++Èä F 19:j
++Èå F 20:j
++Èæ F 21:j
++Èç F 22:j
++Èè F 23:j
++Èé F 24:j
++Èê F 25:j
++Èë F 26:j
++Èì F 27:j
++Èí F 28:j
++Èî F 29:j
++Èï F 30:j
++Èð F 31:j
++Èñ F 32:j
++Èò F 33:j
++Èó F 34:j
++Èô F 35:j
++Èõ F 36:j
++Èö F 37:j
++È÷ F 38:j
++Èø F 39:j
++Èù F 40:j
++Èú F 41:j
++Èû F 42:j
++Èü F 43:j
++Èý F 44:j
++Èþ F 45:j
++ɡ F 46:j
++ɢ F 47:j
++ɣ F 48:j
++ɤ F 49:j
++ɥ F 50:j
++ɦ F 51:j
++ɧ F 52:j
++ɨ F 53:j
++ɩ F 54:j
++ɪ F 55:j
++ɫ F 56:j
++ɬ F 57:j
++ɭ F 58:j
++ɮ F 59:j
++ɯ F 60:j
++ɰ F 61:j
++ɱ F 62:j
++ɲ F 63:j
++ɳ F 64:j
++ɴ F 65:j
++ɵ F 66:j
++ɶ F 67:j
++ɷ F 68:j
++ɸ F 69:j
++ɹ F 70:j
++ɺ F 71:j
++ɻ F 72:j
++ɼ F 73:j
++ɽ F 74:j
++ɾ F 75:j
++ɿ F 76:j
++ÉÀ F 77:j
++ÉÁ F 78:j
++ÉÂ F 79:j
++ÉÃ F 80:j
++ÉÄ F 81:j
++ÉÅ F 82:j
++ÉÆ F 83:j
++ÉÇ F 84:j
++ÉÈ F 85:j
++ÉÉ F 86:j
++ÉÊ F 87:j
++ÉË F 88:j
++ÉÌ F 89:j
++ÉÍ F 90:j
++ÉÎ F 91:j
++ÉÏ F 92:j
++ÉÐ F 93:j
++ÉÑ F 94:j
++ÉÒ F 95:j
++ÉÓ F 96:j
++ÉÔ F 97:j
++ÉÕ F 98:j
++ÉÖ F 99:j
++É× F 100:j
++ÉØ F 101:j
++ÉÙ F 102:j
++ÉÚ F 103:j
++ÉÛ F 104:j
++ÉÜ F 105:j
++ÉÝ F 106:j
++ÉÞ F 107:j
++Éß F 108:j
++Éà F 109:j
++Éá F 110:j
++Éâ F 111:j
++Éã F 112:j
++Éä F 113:j
++Éå F 114:j
++Éæ F 115:j
++Éç F 116:j
++Éè F 117:j
++Éé F 118:j
++Éê F 119:j
++Éë F 120:j
++Éì F 121:j
++Éí F 122:j
++Éî F 123:j
++Éï F 124:j
++Éð F 125:j
++Éñ F 126:j
++Éò F 127:j
++Éó F 128:j
++Éô F 129:j
++Éõ F 130:j
++Éö F 131:j
++É÷ F 132:j
++Éø F 133:j
++Éù F 134:j
++Éú F 135:j
++Éû F 136:j
++Éü F 137:j
++Éý F 138:j
++Éþ F 139:j
++ʡ F 140:j
++ʢ F 141:j
++ʣ F 142:j
++ʤ F 143:j
++ʥ F 144:j
++ʦ F 145:j
++ʧ F 146:j
++ʨ F 147:j
++ʩ F 148:j
++ʪ F 149:j
++ʫ F 150:j
++ʬ F 151:j
++ʭ F 152:j
++ʮ F 153:j
++ʯ F 154:j
++ʰ F 155:j
++ʱ F 156:j
++ʲ F 157:j
++ʳ F 158:j
++ʴ F 159:j
++ʵ F 160:j
++ʶ F 161:j
++ʷ F 162:j
++ʸ F 163:j
++ʹ F 164:j
++ʺ F 165:j
++ʻ F 166:j
++ʼ F 167:j
++ʽ F 168:j
++ʾ F 169:j
++ʿ F 170:j
++ÊÀ F 171:j
++ÊÁ F 172:j
++ÊÂ F 173:j
++ÊÃ F 174:j
++ÊÄ F 175:j
++ÊÅ F 176:j
++ÊÆ F 177:j
++ÊÇ F 178:j
++ÊÈ F 179:j
++ÊÉ F 180:j
++ÊÊ F 181:j
++ÊË F 182:j
++ÊÌ F 183:j
++ÊÍ F 184:j
++ÊÎ F 185:j
++ÊÏ F 186:j
++ÊÐ F 187:j
++ÊÑ F 188:j
++ÊÒ F 189:j
++ÊÓ F 190:j
++ÊÔ F 191:j
++ÊÕ F 192:j
++ÊÖ F 193:j
++Ê× F 194:j
++ÊØ F 195:j
++ÊÙ F 196:j
++ÊÚ F 197:j
++ÊÛ F 198:j
++ÊÜ F 199:j
++ÊÝ F 200:j
++ÊÞ F 201:j
++Êß F 202:j
++Êà F 203:j
++Êá F 204:j
++Êâ F 205:j
++Êã F 206:j
++Êä F 207:j
++Êå F 208:j
++Êæ F 209:j
++Êç F 210:j
++Êè F 211:j
++Êé F 212:j
++Êê F 213:j
++Êë F 214:j
++Êì F 215:j
++Êí F 216:j
++Êî F 217:j
++Êï F 218:j
++Êð F 219:j
++Êñ F 220:j
++Êò F 221:j
++Êó F 222:j
++Êô F 223:j
++Êõ F 224:j
++Êö F 225:j
++Ê÷ F 226:j
++Êø F 227:j
++Êù F 228:j
++Êú F 229:j
++Êû F 230:j
++Êü F 231:j
++Êý F 232:j
++Êþ F 233:j
++ˡ F 234:j
++ˢ F 235:j
++ˣ F 236:j
++ˤ F 237:j
++˥ F 238:j
++˦ F 239:j
++˧ F 240:j
++˨ F 241:j
++˩ F 242:j
++˪ F 243:j
++˫ F 244:j
++ˬ F 245:j
++˭ F 246:j
++ˮ F 247:j
++˯ F 248:j
++˰ F 249:j
++˱ F 250:j
++˲ F 251:j
++˳ F 252:j
++˴ F 253:j
++˵ F 254:j
++˶ F 255:j
++˷ F 0:k
++˸ F 1:k
++˹ F 2:k
++˺ F 3:k
++˻ F 4:k
++˼ F 5:k
++˽ F 6:k
++˾ F 7:k
++˿ F 8:k
++ËÀ F 9:k
++ËÁ F 10:k
++ËÂ F 11:k
++ËÃ F 12:k
++ËÄ F 13:k
++ËÅ F 14:k
++ËÆ F 15:k
++ËÇ F 16:k
++ËÈ F 17:k
++ËÉ F 18:k
++ËÊ F 19:k
++ËË F 20:k
++ËÌ F 21:k
++ËÍ F 22:k
++ËÎ F 23:k
++ËÏ F 24:k
++ËÐ F 25:k
++ËÑ F 26:k
++ËÒ F 27:k
++ËÓ F 28:k
++ËÔ F 29:k
++ËÕ F 30:k
++ËÖ F 31:k
++Ë× F 32:k
++ËØ F 33:k
++ËÙ F 34:k
++ËÚ F 35:k
++ËÛ F 36:k
++ËÜ F 37:k
++ËÝ F 38:k
++ËÞ F 39:k
++Ëß F 40:k
++Ëà F 41:k
++Ëá F 42:k
++Ëâ F 43:k
++Ëã F 44:k
++Ëä F 45:k
++Ëå F 46:k
++Ëæ F 47:k
++Ëç F 48:k
++Ëè F 49:k
++Ëé F 50:k
++Ëê F 51:k
++Ëë F 52:k
++Ëì F 53:k
++Ëí F 54:k
++Ëî F 55:k
++Ëï F 56:k
++Ëð F 57:k
++Ëñ F 58:k
++Ëò F 59:k
++Ëó F 60:k
++Ëô F 61:k
++Ëõ F 62:k
++Ëö F 63:k
++Ë÷ F 64:k
++Ëø F 65:k
++Ëù F 66:k
++Ëú F 67:k
++Ëû F 68:k
++Ëü F 69:k
++Ëý F 70:k
++Ëþ F 71:k
++̡ F 72:k
++̢ F 73:k
++̣ F 74:k
++̤ F 75:k
++̥ F 76:k
++̦ F 77:k
++̧ F 78:k
++̨ F 79:k
++̩ F 80:k
++̪ F 81:k
++̫ F 82:k
++̬ F 83:k
++̭ F 84:k
++̮ F 85:k
++̯ F 86:k
++̰ F 87:k
++̱ F 88:k
++̲ F 89:k
++̳ F 90:k
++̴ F 91:k
++̵ F 92:k
++̶ F 93:k
++̷ F 94:k
++̸ F 95:k
++̹ F 96:k
++̺ F 97:k
++̻ F 98:k
++̼ F 99:k
++̽ F 100:k
++̾ F 101:k
++̿ F 102:k
++ÌÀ F 103:k
++ÌÁ F 104:k
++ÌÂ F 105:k
++ÌÃ F 106:k
++ÌÄ F 107:k
++ÌÅ F 108:k
++ÌÆ F 109:k
++ÌÇ F 110:k
++ÌÈ F 111:k
++ÌÉ F 112:k
++ÌÊ F 113:k
++ÌË F 114:k
++ÌÌ F 115:k
++ÌÍ F 116:k
++ÌÎ F 117:k
++ÌÏ F 118:k
++ÌÐ F 119:k
++ÌÑ F 120:k
++ÌÒ F 121:k
++ÌÓ F 122:k
++ÌÔ F 123:k
++ÌÕ F 124:k
++ÌÖ F 125:k
++Ì× F 126:k
++ÌØ F 127:k
++ÌÙ F 128:k
++ÌÚ F 129:k
++ÌÛ F 130:k
++ÌÜ F 131:k
++ÌÝ F 132:k
++ÌÞ F 133:k
++Ìß F 134:k
++Ìà F 135:k
++Ìá F 136:k
++Ìâ F 137:k
++Ìã F 138:k
++Ìä F 139:k
++Ìå F 140:k
++Ìæ F 141:k
++Ìç F 142:k
++Ìè F 143:k
++Ìé F 144:k
++Ìê F 145:k
++Ìë F 146:k
++Ìì F 147:k
++Ìí F 148:k
++Ìî F 149:k
++Ìï F 150:k
++Ìð F 151:k
++Ìñ F 152:k
++Ìò F 153:k
++Ìó F 154:k
++Ìô F 155:k
++Ìõ F 156:k
++Ìö F 157:k
++Ì÷ F 158:k
++Ìø F 159:k
++Ìù F 160:k
++Ìú F 161:k
++Ìû F 162:k
++Ìü F 163:k
++Ìý F 164:k
++Ìþ F 165:k
++͡ F 166:k
++͢ F 167:k
++ͣ F 168:k
++ͤ F 169:k
++ͥ F 170:k
++ͦ F 171:k
++ͧ F 172:k
++ͨ F 173:k
++ͩ F 174:k
++ͪ F 175:k
++ͫ F 176:k
++ͬ F 177:k
++ͭ F 178:k
++ͮ F 179:k
++ͯ F 180:k
++Ͱ F 181:k
++ͱ F 182:k
++Ͳ F 183:k
++ͳ F 184:k
++ʹ F 185:k
++͵ F 186:k
++Ͷ F 187:k
++ͷ F 188:k
++ F 189:k
++ F 190:k
++ͺ F 191:k
++ͻ F 192:k
++ͼ F 193:k
++ͽ F 194:k
++; F 195:k
++Ϳ F 196:k
++ÍÀ F 197:k
++ÍÁ F 198:k
++ÍÂ F 199:k
++ÍÃ F 200:k
++ÍÄ F 201:k
++ÍÅ F 202:k
++ÍÆ F 203:k
++ÍÇ F 204:k
++ÍÈ F 205:k
++ÍÉ F 206:k
++ÍÊ F 207:k
++ÍË F 208:k
++ÍÌ F 209:k
++ÍÍ F 210:k
++ÍÎ F 211:k
++ÍÏ F 212:k
++ÍÐ F 213:k
++ÍÑ F 214:k
++ÍÒ F 215:k
++ÍÓ F 216:k
++ÍÔ F 217:k
++ÍÕ F 218:k
++ÍÖ F 219:k
++Í× F 220:k
++ÍØ F 221:k
++ÍÙ F 222:k
++ÍÚ F 223:k
++ÍÛ F 224:k
++ÍÜ F 225:k
++ÍÝ F 226:k
++ÍÞ F 227:k
++Íß F 228:k
++Íà F 229:k
++Íá F 230:k
++Íâ F 231:k
++Íã F 232:k
++Íä F 233:k
++Íå F 234:k
++Íæ F 235:k
++Íç F 236:k
++Íè F 237:k
++Íé F 238:k
++Íê F 239:k
++Íë F 240:k
++Íì F 241:k
++Íí F 242:k
++Íî F 243:k
++Íï F 244:k
++Íð F 245:k
++Íñ F 246:k
++Íò F 247:k
++Íó F 248:k
++Íô F 249:k
++Íõ F 250:k
++Íö F 251:k
++Í÷ F 252:k
++Íø F 253:k
++Íù F 254:k
++Íú F 255:k
++Íû F 0:l
++Íü F 1:l
++Íý F 2:l
++Íþ F 3:l
++Ρ F 4:l
++ F 5:l
++Σ F 6:l
++Τ F 7:l
++Υ F 8:l
++Φ F 9:l
++Χ F 10:l
++Ψ F 11:l
++Ω F 12:l
++Ϊ F 13:l
++Ϋ F 14:l
++ά F 15:l
++έ F 16:l
++ή F 17:l
++ί F 18:l
++ΰ F 19:l
++α F 20:l
++β F 21:l
++γ F 22:l
++δ F 23:l
++ε F 24:l
++ζ F 25:l
++η F 26:l
++θ F 27:l
++ι F 28:l
++κ F 29:l
++λ F 30:l
++μ F 31:l
++ν F 32:l
++ξ F 33:l
++ο F 34:l
++ÎÀ F 35:l
++ÎÁ F 36:l
++ÎÂ F 37:l
++ÎÃ F 38:l
++ÎÄ F 39:l
++ÎÅ F 40:l
++ÎÆ F 41:l
++ÎÇ F 42:l
++ÎÈ F 43:l
++ÎÉ F 44:l
++ÎÊ F 45:l
++ÎË F 46:l
++ÎÌ F 47:l
++ÎÍ F 48:l
++ÎÎ F 49:l
++ÎÏ F 50:l
++ÎÐ F 51:l
++ÎÑ F 52:l
++ÎÒ F 53:l
++ÎÓ F 54:l
++ÎÔ F 55:l
++ÎÕ F 56:l
++ÎÖ F 57:l
++Î× F 58:l
++ÎØ F 59:l
++ÎÙ F 60:l
++ÎÚ F 61:l
++ÎÛ F 62:l
++ÎÜ F 63:l
++ÎÝ F 64:l
++ÎÞ F 65:l
++Îß F 66:l
++Îà F 67:l
++Îá F 68:l
++Îâ F 69:l
++Îã F 70:l
++Îä F 71:l
++Îå F 72:l
++Îæ F 73:l
++Îç F 74:l
++Îè F 75:l
++Îé F 76:l
++Îê F 77:l
++Îë F 78:l
++Îì F 79:l
++Îí F 80:l
++Îî F 81:l
++Îï F 82:l
++Îð F 83:l
++Îñ F 84:l
++Îò F 85:l
++Îó F 86:l
++Îô F 87:l
++Îõ F 88:l
++Îö F 89:l
++Î÷ F 90:l
++Îø F 91:l
++Îù F 92:l
++Îú F 93:l
++Îû F 94:l
++Îü F 95:l
++Îý F 96:l
++Îþ F 97:l
++ϡ F 98:l
++Ϣ F 99:l
++ϣ F 100:l
++Ϥ F 101:l
++ϥ F 102:l
++Ϧ F 103:l
++ϧ F 104:l
++Ϩ F 105:l
++ϩ F 106:l
++Ϫ F 107:l
++ϫ F 108:l
++Ϭ F 109:l
++ϭ F 110:l
++Ϯ F 111:l
++ϯ F 112:l
++ϰ F 113:l
++ϱ F 114:l
++ϲ F 115:l
++ϳ F 116:l
++ϴ F 117:l
++ϵ F 118:l
++϶ F 119:l
++Ϸ F 120:l
++ϸ F 121:l
++Ϲ F 122:l
++Ϻ F 123:l
++ϻ F 124:l
++ϼ F 125:l
++Ͻ F 126:l
++Ͼ F 127:l
++Ͽ F 128:l
++ÏÀ F 129:l
++ÏÁ F 130:l
++ÏÂ F 131:l
++ÏÃ F 132:l
++ÏÄ F 133:l
++ÏÅ F 134:l
++ÏÆ F 135:l
++ÏÇ F 136:l
++ÏÈ F 137:l
++ÏÉ F 138:l
++ÏÊ F 139:l
++ÏË F 140:l
++ÏÌ F 141:l
++ÏÍ F 142:l
++ÏÎ F 143:l
++ÏÏ F 144:l
++ÏÐ F 145:l
++ÏÑ F 146:l
++ÏÒ F 147:l
++ÏÓ F 148:l
++С F 0:m
++Т F 1:m
++У F 2:m
++Ф F 3:m
++Х F 4:m
++Ц F 5:m
++Ч F 6:m
++Ш F 7:m
++Щ F 8:m
++Ъ F 9:m
++Ы F 10:m
++Ь F 11:m
++Э F 12:m
++Ю F 13:m
++Я F 14:m
++а F 15:m
++б F 16:m
++в F 17:m
++г F 18:m
++д F 19:m
++е F 20:m
++ж F 21:m
++з F 22:m
++и F 23:m
++й F 24:m
++к F 25:m
++л F 26:m
++м F 27:m
++н F 28:m
++о F 29:m
++п F 30:m
++ÐÀ F 31:m
++ÐÁ F 32:m
++ÐÂ F 33:m
++ÐÃ F 34:m
++ÐÄ F 35:m
++ÐÅ F 36:m
++ÐÆ F 37:m
++ÐÇ F 38:m
++ÐÈ F 39:m
++ÐÉ F 40:m
++ÐÊ F 41:m
++ÐË F 42:m
++ÐÌ F 43:m
++ÐÍ F 44:m
++ÐÎ F 45:m
++ÐÏ F 46:m
++ÐÐ F 47:m
++ÐÑ F 48:m
++ÐÒ F 49:m
++ÐÓ F 50:m
++ÐÔ F 51:m
++ÐÕ F 52:m
++ÐÖ F 53:m
++Ð× F 54:m
++ÐØ F 55:m
++ÐÙ F 56:m
++ÐÚ F 57:m
++ÐÛ F 58:m
++ÐÜ F 59:m
++ÐÝ F 60:m
++ÐÞ F 61:m
++Ðß F 62:m
++Ðà F 63:m
++Ðá F 64:m
++Ðâ F 65:m
++Ðã F 66:m
++Ðä F 67:m
++Ðå F 68:m
++Ðæ F 69:m
++Ðç F 70:m
++Ðè F 71:m
++Ðé F 72:m
++Ðê F 73:m
++Ðë F 74:m
++Ðì F 75:m
++Ðí F 76:m
++Ðî F 77:m
++Ðï F 78:m
++Ðð F 79:m
++Ðñ F 80:m
++Ðò F 81:m
++Ðó F 82:m
++Ðô F 83:m
++Ðõ F 84:m
++Ðö F 85:m
++Ð÷ F 86:m
++Ðø F 87:m
++Ðù F 88:m
++Ðú F 89:m
++Ðû F 90:m
++Ðü F 91:m
++Ðý F 92:m
++Ðþ F 93:m
++ѡ F 94:m
++Ѣ F 95:m
++ѣ F 96:m
++Ѥ F 97:m
++ѥ F 98:m
++Ѧ F 99:m
++ѧ F 100:m
++Ѩ F 101:m
++ѩ F 102:m
++Ѫ F 103:m
++ѫ F 104:m
++Ѭ F 105:m
++ѭ F 106:m
++Ѯ F 107:m
++ѯ F 108:m
++Ѱ F 109:m
++ѱ F 110:m
++Ѳ F 111:m
++ѳ F 112:m
++Ѵ F 113:m
++ѵ F 114:m
++Ѷ F 115:m
++ѷ F 116:m
++Ѹ F 117:m
++ѹ F 118:m
++Ѻ F 119:m
++ѻ F 120:m
++Ѽ F 121:m
++ѽ F 122:m
++Ѿ F 123:m
++ѿ F 124:m
++ÑÀ F 125:m
++ÑÁ F 126:m
++ÑÂ F 127:m
++ÑÃ F 128:m
++ÑÄ F 129:m
++ÑÅ F 130:m
++ÑÆ F 131:m
++ÑÇ F 132:m
++ÑÈ F 133:m
++ÑÉ F 134:m
++ÑÊ F 135:m
++ÑË F 136:m
++ÑÌ F 137:m
++ÑÍ F 138:m
++ÑÎ F 139:m
++ÑÏ F 140:m
++ÑÐ F 141:m
++ÑÑ F 142:m
++ÑÒ F 143:m
++ÑÓ F 144:m
++ÑÔ F 145:m
++ÑÕ F 146:m
++ÑÖ F 147:m
++Ñ× F 148:m
++ÑØ F 149:m
++ÑÙ F 150:m
++ÑÚ F 151:m
++ÑÛ F 152:m
++ÑÜ F 153:m
++ÑÝ F 154:m
++ÑÞ F 155:m
++Ñß F 156:m
++Ñà F 157:m
++Ñá F 158:m
++Ñâ F 159:m
++Ñã F 160:m
++Ñä F 161:m
++Ñå F 162:m
++Ñæ F 163:m
++Ñç F 164:m
++Ñè F 165:m
++Ñé F 166:m
++Ñê F 167:m
++Ñë F 168:m
++Ñì F 169:m
++Ñí F 170:m
++Ñî F 171:m
++Ñï F 172:m
++Ñð F 173:m
++Ññ F 174:m
++Ñò F 175:m
++Ñó F 176:m
++Ñô F 177:m
++Ñõ F 178:m
++Ñö F 179:m
++Ñ÷ F 180:m
++Ñø F 181:m
++Ñù F 182:m
++Ñú F 183:m
++Ñû F 184:m
++Ñü F 185:m
++Ñý F 186:m
++Ñþ F 187:m
++ҡ F 188:m
++Ң F 189:m
++ң F 190:m
++Ҥ F 191:m
++ҥ F 192:m
++Ҧ F 193:m
++ҧ F 194:m
++Ҩ F 195:m
++ҩ F 196:m
++Ҫ F 197:m
++ҫ F 198:m
++Ҭ F 199:m
++ҭ F 200:m
++Ү F 201:m
++ү F 202:m
++Ұ F 203:m
++ұ F 204:m
++Ҳ F 205:m
++ҳ F 206:m
++Ҵ F 207:m
++ҵ F 208:m
++Ҷ F 209:m
++ҷ F 210:m
++Ҹ F 211:m
++ҹ F 212:m
++Һ F 213:m
++һ F 214:m
++Ҽ F 215:m
++ҽ F 216:m
++Ҿ F 217:m
++ҿ F 218:m
++ÒÀ F 219:m
++ÒÁ F 220:m
++ÒÂ F 221:m
++ÒÃ F 222:m
++ÒÄ F 223:m
++ÒÅ F 224:m
++ÒÆ F 225:m
++ÒÇ F 226:m
++ÒÈ F 227:m
++ÒÉ F 228:m
++ÒÊ F 229:m
++ÒË F 230:m
++ÒÌ F 231:m
++ÒÍ F 232:m
++ÒÎ F 233:m
++ÒÏ F 234:m
++ÒÐ F 235:m
++ÒÑ F 236:m
++ÒÒ F 237:m
++ÒÓ F 238:m
++ÒÔ F 239:m
++ÒÕ F 240:m
++ÒÖ F 241:m
++Ò× F 242:m
++ÒØ F 243:m
++ÒÙ F 244:m
++ÒÚ F 245:m
++ÒÛ F 246:m
++ÒÜ F 247:m
++ÒÝ F 248:m
++ÒÞ F 249:m
++Òß F 250:m
++Òà F 251:m
++Òá F 252:m
++Òâ F 253:m
++Òã F 254:m
++Òä F 255:m
++Òå F 0:n
++Òæ F 1:n
++Òç F 2:n
++Òè F 3:n
++Òé F 4:n
++Òê F 5:n
++Òë F 6:n
++Òì F 7:n
++Òí F 8:n
++Òî F 9:n
++Òï F 10:n
++Òð F 11:n
++Òñ F 12:n
++Òò F 13:n
++Òó F 14:n
++Òô F 15:n
++Òõ F 16:n
++Òö F 17:n
++Ò÷ F 18:n
++Òø F 19:n
++Òù F 20:n
++Òú F 21:n
++Òû F 22:n
++Òü F 23:n
++Òý F 24:n
++Òþ F 25:n
++ӡ F 26:n
++Ӣ F 27:n
++ӣ F 28:n
++Ӥ F 29:n
++ӥ F 30:n
++Ӧ F 31:n
++ӧ F 32:n
++Ө F 33:n
++ө F 34:n
++Ӫ F 35:n
++ӫ F 36:n
++Ӭ F 37:n
++ӭ F 38:n
++Ӯ F 39:n
++ӯ F 40:n
++Ӱ F 41:n
++ӱ F 42:n
++Ӳ F 43:n
++ӳ F 44:n
++Ӵ F 45:n
++ӵ F 46:n
++Ӷ F 47:n
++ӷ F 48:n
++Ӹ F 49:n
++ӹ F 50:n
++Ӻ F 51:n
++ӻ F 52:n
++Ӽ F 53:n
++ӽ F 54:n
++Ӿ F 55:n
++ӿ F 56:n
++ÓÀ F 57:n
++ÓÁ F 58:n
++ÓÂ F 59:n
++ÓÃ F 60:n
++ÓÄ F 61:n
++ÓÅ F 62:n
++ÓÆ F 63:n
++ÓÇ F 64:n
++ÓÈ F 65:n
++ÓÉ F 66:n
++ÓÊ F 67:n
++ÓË F 68:n
++ÓÌ F 69:n
++ÓÍ F 70:n
++ÓÎ F 71:n
++ÓÏ F 72:n
++ÓÐ F 73:n
++ÓÑ F 74:n
++ÓÒ F 75:n
++ÓÓ F 76:n
++ÓÔ F 77:n
++ÓÕ F 78:n
++ÓÖ F 79:n
++Ó× F 80:n
++ÓØ F 81:n
++ÓÙ F 82:n
++ÓÚ F 83:n
++ÓÛ F 84:n
++ÓÜ F 85:n
++ÓÝ F 86:n
++ÓÞ F 87:n
++Óß F 88:n
++Óà F 89:n
++Óá F 90:n
++Óâ F 91:n
++Óã F 92:n
++Óä F 93:n
++Óå F 94:n
++Óæ F 95:n
++Óç F 96:n
++Óè F 97:n
++Óé F 98:n
++Óê F 99:n
++Óë F 100:n
++Óì F 101:n
++Óí F 102:n
++Óî F 103:n
++Óï F 104:n
++Óð F 105:n
++Óñ F 106:n
++Óò F 107:n
++Óó F 108:n
++Óô F 109:n
++Óõ F 110:n
++Óö F 111:n
++Ó÷ F 112:n
++Óø F 113:n
++Óù F 114:n
++Óú F 115:n
++Óû F 116:n
++Óü F 117:n
++Óý F 118:n
++Óþ F 119:n
++ԡ F 120:n
++Ԣ F 121:n
++ԣ F 122:n
++Ԥ F 123:n
++ԥ F 124:n
++Ԧ F 125:n
++ԧ F 126:n
++Ԩ F 127:n
++ԩ F 128:n
++Ԫ F 129:n
++ԫ F 130:n
++Ԭ F 131:n
++ԭ F 132:n
++Ԯ F 133:n
++ԯ F 134:n
++ F 135:n
++Ա F 136:n
++Բ F 137:n
++Գ F 138:n
++Դ F 139:n
++Ե F 140:n
++Զ F 141:n
++Է F 142:n
++Ը F 143:n
++Թ F 144:n
++Ժ F 145:n
++Ի F 146:n
++Լ F 147:n
++Խ F 148:n
++Ծ F 149:n
++Կ F 150:n
++ÔÀ F 151:n
++ÔÁ F 152:n
++ÔÂ F 153:n
++ÔÃ F 154:n
++ÔÄ F 155:n
++ÔÅ F 156:n
++ÔÆ F 157:n
++ÔÇ F 158:n
++ÔÈ F 159:n
++ÔÉ F 160:n
++ÔÊ F 161:n
++ÔË F 162:n
++ÔÌ F 163:n
++ÔÍ F 164:n
++ÔÎ F 165:n
++ÔÏ F 166:n
++ÔÐ F 167:n
++ÔÑ F 168:n
++ÔÒ F 169:n
++ÔÓ F 170:n
++ÔÔ F 171:n
++ÔÕ F 172:n
++ÔÖ F 173:n
++Ô× F 174:n
++ÔØ F 175:n
++ÔÙ F 176:n
++ÔÚ F 177:n
++ÔÛ F 178:n
++ÔÜ F 179:n
++ÔÝ F 180:n
++ÔÞ F 181:n
++Ôß F 182:n
++Ôà F 183:n
++Ôá F 184:n
++Ôâ F 185:n
++Ôã F 186:n
++Ôä F 187:n
++Ôå F 188:n
++Ôæ F 189:n
++Ôç F 190:n
++Ôè F 191:n
++Ôé F 192:n
++Ôê F 193:n
++Ôë F 194:n
++Ôì F 195:n
++Ôí F 196:n
++Ôî F 197:n
++Ôï F 198:n
++Ôð F 199:n
++Ôñ F 200:n
++Ôò F 201:n
++Ôó F 202:n
++Ôô F 203:n
++Ôõ F 204:n
++Ôö F 205:n
++Ô÷ F 206:n
++Ôø F 207:n
++Ôù F 208:n
++Ôú F 209:n
++Ôû F 210:n
++Ôü F 211:n
++Ôý F 212:n
++Ôþ F 213:n
++ա F 214:n
++բ F 215:n
++գ F 216:n
++դ F 217:n
++ե F 218:n
++զ F 219:n
++է F 220:n
++ը F 221:n
++թ F 222:n
++ժ F 223:n
++ի F 224:n
++լ F 225:n
++խ F 226:n
++ծ F 227:n
++կ F 228:n
++հ F 229:n
++ձ F 230:n
++ղ F 231:n
++ճ F 232:n
++մ F 233:n
++յ F 234:n
++ն F 235:n
++շ F 236:n
++ո F 237:n
++չ F 238:n
++պ F 239:n
++ջ F 240:n
++ռ F 241:n
++ս F 242:n
++վ F 243:n
++տ F 244:n
++ÕÀ F 245:n
++ÕÁ F 246:n
++ÕÂ F 247:n
++ÕÃ F 248:n
++ÕÄ F 249:n
++ÕÅ F 250:n
++ÕÆ F 251:n
++ÕÇ F 252:n
++ÕÈ F 253:n
++ÕÉ F 254:n
++ÕÊ F 255:n
++ÕË F 0:o
++ÕÌ F 1:o
++ÕÍ F 2:o
++ÕÎ F 3:o
++ÕÏ F 4:o
++ÕÐ F 5:o
++ÕÑ F 6:o
++ÕÒ F 7:o
++ÕÓ F 8:o
++ÕÔ F 9:o
++ÕÕ F 10:o
++ÕÖ F 11:o
++Õ× F 12:o
++ÕØ F 13:o
++ÕÙ F 14:o
++ÕÚ F 15:o
++ÕÛ F 16:o
++ÕÜ F 17:o
++ÕÝ F 18:o
++ÕÞ F 19:o
++Õß F 20:o
++Õà F 21:o
++Õá F 22:o
++Õâ F 23:o
++Õã F 24:o
++Õä F 25:o
++Õå F 26:o
++Õæ F 27:o
++Õç F 28:o
++Õè F 29:o
++Õé F 30:o
++Õê F 31:o
++Õë F 32:o
++Õì F 33:o
++Õí F 34:o
++Õî F 35:o
++Õï F 36:o
++Õð F 37:o
++Õñ F 38:o
++Õò F 39:o
++Õó F 40:o
++Õô F 41:o
++Õõ F 42:o
++Õö F 43:o
++Õ÷ F 44:o
++Õø F 45:o
++Õù F 46:o
++Õú F 47:o
++Õû F 48:o
++Õü F 49:o
++Õý F 50:o
++Õþ F 51:o
++֡ F 52:o
++֢ F 53:o
++֣ F 54:o
++֤ F 55:o
++֥ F 56:o
++֦ F 57:o
++֧ F 58:o
++֨ F 59:o
++֩ F 60:o
++֪ F 61:o
++֫ F 62:o
++֬ F 63:o
++֭ F 64:o
++֮ F 65:o
++֯ F 66:o
++ְ F 67:o
++ֱ F 68:o
++ֲ F 69:o
++ֳ F 70:o
++ִ F 71:o
++ֵ F 72:o
++ֶ F 73:o
++ַ F 74:o
++ָ F 75:o
++ֹ F 76:o
++ֺ F 77:o
++ֻ F 78:o
++ּ F 79:o
++ֽ F 80:o
++־ F 81:o
++ֿ F 82:o
++ÖÀ F 83:o
++ÖÁ F 84:o
++ÖÂ F 85:o
++ÖÃ F 86:o
++ÖÄ F 87:o
++ÖÅ F 88:o
++ÖÆ F 89:o
++ÖÇ F 90:o
++ÖÈ F 91:o
++ÖÉ F 92:o
++ÖÊ F 93:o
++ÖË F 94:o
++ÖÌ F 95:o
++ÖÍ F 96:o
++ÖÎ F 97:o
++ÖÏ F 98:o
++ÖÐ F 99:o
++ÖÑ F 100:o
++ÖÒ F 101:o
++ÖÓ F 102:o
++ÖÔ F 103:o
++ÖÕ F 104:o
++ÖÖ F 105:o
++Ö× F 106:o
++ÖØ F 107:o
++ÖÙ F 108:o
++ÖÚ F 109:o
++ÖÛ F 110:o
++ÖÜ F 111:o
++ÖÝ F 112:o
++ÖÞ F 113:o
++Öß F 114:o
++Öà F 115:o
++Öá F 116:o
++Öâ F 117:o
++Öã F 118:o
++Öä F 119:o
++Öå F 120:o
++Öæ F 121:o
++Öç F 122:o
++Öè F 123:o
++Öé F 124:o
++Öê F 125:o
++Öë F 126:o
++Öì F 127:o
++Öí F 128:o
++Öî F 129:o
++Öï F 130:o
++Öð F 131:o
++Öñ F 132:o
++Öò F 133:o
++Öó F 134:o
++Öô F 135:o
++Öõ F 136:o
++Öö F 137:o
++Ö÷ F 138:o
++Öø F 139:o
++Öù F 140:o
++Öú F 141:o
++Öû F 142:o
++Öü F 143:o
++Öý F 144:o
++Öþ F 145:o
++ס F 146:o
++ע F 147:o
++ף F 148:o
++פ F 149:o
++ץ F 150:o
++צ F 151:o
++ק F 152:o
++ר F 153:o
++ש F 154:o
++ת F 155:o
++ F 156:o
++ F 157:o
++ F 158:o
++ F 159:o
++ׯ F 160:o
++װ F 161:o
++ױ F 162:o
++ײ F 163:o
++׳ F 164:o
++״ F 165:o
++ F 166:o
++ F 167:o
++ F 168:o
++ F 169:o
++ F 170:o
++ F 171:o
++ F 172:o
++ F 173:o
++ F 174:o
++ F 175:o
++ F 176:o
++×À F 177:o
++×Á F 178:o
++× F 179:o
++×à F 180:o
++×Ä F 181:o
++×Å F 182:o
++×Æ F 183:o
++×Ç F 184:o
++×È F 185:o
++×É F 186:o
++×Ê F 187:o
++×Ë F 188:o
++×Ì F 189:o
++×Í F 190:o
++×Î F 191:o
++×Ï F 192:o
++×Ð F 193:o
++×Ñ F 194:o
++×Ò F 195:o
++×Ó F 196:o
++×Ô F 197:o
++×Õ F 198:o
++×Ö F 199:o
++×× F 200:o
++×Ø F 201:o
++×Ù F 202:o
++×Ú F 203:o
++×Û F 204:o
++×Ü F 205:o
++×Ý F 206:o
++×Þ F 207:o
++×ß F 208:o
++×à F 209:o
++×á F 210:o
++×â F 211:o
++×ã F 212:o
++×ä F 213:o
++×å F 214:o
++×æ F 215:o
++×ç F 216:o
++×è F 217:o
++×é F 218:o
++×ê F 219:o
++×ë F 220:o
++×ì F 221:o
++×í F 222:o
++×î F 223:o
++×ï F 224:o
++×ð F 225:o
++×ñ F 226:o
++×ò F 227:o
++×ó F 228:o
++×ô F 229:o
++×õ F 230:o
++×ö F 231:o
++×÷ F 232:o
++×ø F 233:o
++×ù F 234:o
++×ú F 235:o
++×û F 236:o
++×ü F 237:o
++×ý F 238:o
++×þ F 239:o
++ء F 240:o
++آ F 241:o
++أ F 242:o
++ؤ F 243:o
++إ F 244:o
++ئ F 245:o
++ا F 246:o
++ب F 247:o
++ة F 248:o
++ت F 249:o
++ث F 250:o
++ج F 251:o
++ح F 252:o
++خ F 253:o
++د F 254:o
++ذ F 255:o
++ر F 0:p
++ز F 1:p
++س F 2:p
++ش F 3:p
++ص F 4:p
++ض F 5:p
++ط F 6:p
++ظ F 7:p
++ع F 8:p
++غ F 9:p
++ػ F 10:p
++ؼ F 11:p
++ؽ F 12:p
++ؾ F 13:p
++ؿ F 14:p
++ØÀ F 15:p
++ØÁ F 16:p
++ØÂ F 17:p
++ØÃ F 18:p
++ØÄ F 19:p
++ØÅ F 20:p
++ØÆ F 21:p
++ØÇ F 22:p
++ØÈ F 23:p
++ØÉ F 24:p
++ØÊ F 25:p
++ØË F 26:p
++ØÌ F 27:p
++ØÍ F 28:p
++ØÎ F 29:p
++ØÏ F 30:p
++ØÐ F 31:p
++ØÑ F 32:p
++ØÒ F 33:p
++ØÓ F 34:p
++ØÔ F 35:p
++ØÕ F 36:p
++ØÖ F 37:p
++Ø× F 38:p
++ØØ F 39:p
++ØÙ F 40:p
++ØÚ F 41:p
++ØÛ F 42:p
++ØÜ F 43:p
++ØÝ F 44:p
++ØÞ F 45:p
++Øß F 46:p
++Øà F 47:p
++Øá F 48:p
++Øâ F 49:p
++Øã F 50:p
++Øä F 51:p
++Øå F 52:p
++Øæ F 53:p
++Øç F 54:p
++Øè F 55:p
++Øé F 56:p
++Øê F 57:p
++Øë F 58:p
++Øì F 59:p
++Øí F 60:p
++Øî F 61:p
++Øï F 62:p
++Øð F 63:p
++Øñ F 64:p
++Øò F 65:p
++Øó F 66:p
++Øô F 67:p
++Øõ F 68:p
++Øö F 69:p
++Ø÷ F 70:p
++Øø F 71:p
++Øù F 72:p
++Øú F 73:p
++Øû F 74:p
++Øü F 75:p
++Øý F 76:p
++Øþ F 77:p
++١ F 78:p
++٢ F 79:p
++٣ F 80:p
++٤ F 81:p
++٥ F 82:p
++٦ F 83:p
++٧ F 84:p
++٨ F 85:p
++٩ F 86:p
++٪ F 87:p
++٫ F 88:p
++٬ F 89:p
++٭ F 90:p
++ٮ F 91:p
++ٯ F 92:p
++ٰ F 93:p
++ٱ F 94:p
++ٲ F 95:p
++ٳ F 96:p
++ٴ F 97:p
++ٵ F 98:p
++ٶ F 99:p
++ٷ F 100:p
++ٸ F 101:p
++ٹ F 102:p
++ٺ F 103:p
++ٻ F 104:p
++ټ F 105:p
++ٽ F 106:p
++پ F 107:p
++ٿ F 108:p
++ÙÀ F 109:p
++ÙÁ F 110:p
++ÙÂ F 111:p
++ÙÃ F 112:p
++ÙÄ F 113:p
++ÙÅ F 114:p
++ÙÆ F 115:p
++ÙÇ F 116:p
++ÙÈ F 117:p
++ÙÉ F 118:p
++ÙÊ F 119:p
++ÙË F 120:p
++ÙÌ F 121:p
++ÙÍ F 122:p
++ÙÎ F 123:p
++ÙÏ F 124:p
++ÙÐ F 125:p
++ÙÑ F 126:p
++ÙÒ F 127:p
++ÙÓ F 128:p
++ÙÔ F 129:p
++ÙÕ F 130:p
++ÙÖ F 131:p
++Ù× F 132:p
++ÙØ F 133:p
++ÙÙ F 134:p
++ÙÚ F 135:p
++ÙÛ F 136:p
++ÙÜ F 137:p
++ÙÝ F 138:p
++ÙÞ F 139:p
++Ùß F 140:p
++Ùà F 141:p
++Ùá F 142:p
++Ùâ F 143:p
++Ùã F 144:p
++Ùä F 145:p
++Ùå F 146:p
++Ùæ F 147:p
++Ùç F 148:p
++Ùè F 149:p
++Ùé F 150:p
++Ùê F 151:p
++Ùë F 152:p
++Ùì F 153:p
++Ùí F 154:p
++Ùî F 155:p
++Ùï F 156:p
++Ùð F 157:p
++Ùñ F 158:p
++Ùò F 159:p
++Ùó F 160:p
++Ùô F 161:p
++Ùõ F 162:p
++Ùö F 163:p
++Ù÷ F 164:p
++Ùø F 165:p
++Ùù F 166:p
++Ùú F 167:p
++Ùû F 168:p
++Ùü F 169:p
++Ùý F 170:p
++Ùþ F 171:p
++ڡ F 172:p
++ڢ F 173:p
++ڣ F 174:p
++ڤ F 175:p
++ڥ F 176:p
++ڦ F 177:p
++ڧ F 178:p
++ڨ F 179:p
++ک F 180:p
++ڪ F 181:p
++ګ F 182:p
++ڬ F 183:p
++ڭ F 184:p
++ڮ F 185:p
++گ F 186:p
++ڰ F 187:p
++ڱ F 188:p
++ڲ F 189:p
++ڳ F 190:p
++ڴ F 191:p
++ڵ F 192:p
++ڶ F 193:p
++ڷ F 194:p
++ڸ F 195:p
++ڹ F 196:p
++ں F 197:p
++ڻ F 198:p
++ڼ F 199:p
++ڽ F 200:p
++ھ F 201:p
++ڿ F 202:p
++ÚÀ F 203:p
++ÚÁ F 204:p
++ÚÂ F 205:p
++ÚÃ F 206:p
++ÚÄ F 207:p
++ÚÅ F 208:p
++ÚÆ F 209:p
++ÚÇ F 210:p
++ÚÈ F 211:p
++ÚÉ F 212:p
++ÚÊ F 213:p
++ÚË F 214:p
++ÚÌ F 215:p
++ÚÍ F 216:p
++ÚÎ F 217:p
++ÚÏ F 218:p
++ÚÐ F 219:p
++ÚÑ F 220:p
++ÚÒ F 221:p
++ÚÓ F 222:p
++ÚÔ F 223:p
++ÚÕ F 224:p
++ÚÖ F 225:p
++Ú× F 226:p
++ÚØ F 227:p
++ÚÙ F 228:p
++ÚÚ F 229:p
++ÚÛ F 230:p
++ÚÜ F 231:p
++ÚÝ F 232:p
++ÚÞ F 233:p
++Úß F 234:p
++Úà F 235:p
++Úá F 236:p
++Úâ F 237:p
++Úã F 238:p
++Úä F 239:p
++Úå F 240:p
++Úæ F 241:p
++Úç F 242:p
++Úè F 243:p
++Úé F 244:p
++Úê F 245:p
++Úë F 246:p
++Úì F 247:p
++Úí F 248:p
++Úî F 249:p
++Úï F 250:p
++Úð F 251:p
++Úñ F 252:p
++Úò F 253:p
++Úó F 254:p
++Úô F 255:p
++Úõ F 0:q
++Úö F 1:q
++Ú÷ F 2:q
++Úø F 3:q
++Úù F 4:q
++Úú F 5:q
++Úû F 6:q
++Úü F 7:q
++Úý F 8:q
++Úþ F 9:q
++ۡ F 10:q
++ۢ F 11:q
++ۣ F 12:q
++ۤ F 13:q
++ۥ F 14:q
++ۦ F 15:q
++ۧ F 16:q
++ۨ F 17:q
++۩ F 18:q
++۪ F 19:q
++۫ F 20:q
++۬ F 21:q
++ۭ F 22:q
++ۮ F 23:q
++ۯ F 24:q
++۰ F 25:q
++۱ F 26:q
++۲ F 27:q
++۳ F 28:q
++۴ F 29:q
++۵ F 30:q
++۶ F 31:q
++۷ F 32:q
++۸ F 33:q
++۹ F 34:q
++ۺ F 35:q
++ۻ F 36:q
++ۼ F 37:q
++۽ F 38:q
++۾ F 39:q
++ۿ F 40:q
++ÛÀ F 41:q
++ÛÁ F 42:q
++ÛÂ F 43:q
++ÛÃ F 44:q
++ÛÄ F 45:q
++ÛÅ F 46:q
++ÛÆ F 47:q
++ÛÇ F 48:q
++ÛÈ F 49:q
++ÛÉ F 50:q
++ÛÊ F 51:q
++ÛË F 52:q
++ÛÌ F 53:q
++ÛÍ F 54:q
++ÛÎ F 55:q
++ÛÏ F 56:q
++ÛÐ F 57:q
++ÛÑ F 58:q
++ÛÒ F 59:q
++ÛÓ F 60:q
++ÛÔ F 61:q
++ÛÕ F 62:q
++ÛÖ F 63:q
++Û× F 64:q
++ÛØ F 65:q
++ÛÙ F 66:q
++ÛÚ F 67:q
++ÛÛ F 68:q
++ÛÜ F 69:q
++ÛÝ F 70:q
++ÛÞ F 71:q
++Ûß F 72:q
++Ûà F 73:q
++Ûá F 74:q
++Ûâ F 75:q
++Ûã F 76:q
++Ûä F 77:q
++Ûå F 78:q
++Ûæ F 79:q
++Ûç F 80:q
++Ûè F 81:q
++Ûé F 82:q
++Ûê F 83:q
++Ûë F 84:q
++Ûì F 85:q
++Ûí F 86:q
++Ûî F 87:q
++Ûï F 88:q
++Ûð F 89:q
++Ûñ F 90:q
++Ûò F 91:q
++Ûó F 92:q
++Ûô F 93:q
++Ûõ F 94:q
++Ûö F 95:q
++Û÷ F 96:q
++Ûø F 97:q
++Ûù F 98:q
++Ûú F 99:q
++Ûû F 100:q
++Ûü F 101:q
++Ûý F 102:q
++Ûþ F 103:q
++ܡ F 104:q
++ܢ F 105:q
++ܣ F 106:q
++ܤ F 107:q
++ܥ F 108:q
++ܦ F 109:q
++ܧ F 110:q
++ܨ F 111:q
++ܩ F 112:q
++ܪ F 113:q
++ܫ F 114:q
++ܬ F 115:q
++ܭ F 116:q
++ܮ F 117:q
++ܯ F 118:q
++ܰ F 119:q
++ܱ F 120:q
++ܲ F 121:q
++ܳ F 122:q
++ܴ F 123:q
++ܵ F 124:q
++ܶ F 125:q
++ܷ F 126:q
++ܸ F 127:q
++ܹ F 128:q
++ܺ F 129:q
++ܻ F 130:q
++ܼ F 131:q
++ܽ F 132:q
++ܾ F 133:q
++ܿ F 134:q
++ÜÀ F 135:q
++ÜÁ F 136:q
++ÜÂ F 137:q
++ÜÃ F 138:q
++ÜÄ F 139:q
++ÜÅ F 140:q
++ÜÆ F 141:q
++ÜÇ F 142:q
++ÜÈ F 143:q
++ÜÉ F 144:q
++ÜÊ F 145:q
++ÜË F 146:q
++ÜÌ F 147:q
++ÜÍ F 148:q
++ÜÎ F 149:q
++ÜÏ F 150:q
++ÜÐ F 151:q
++ÜÑ F 152:q
++ÜÒ F 153:q
++ÜÓ F 154:q
++ÜÔ F 155:q
++ÜÕ F 156:q
++ÜÖ F 157:q
++Ü× F 158:q
++ÜØ F 159:q
++ÜÙ F 160:q
++ÜÚ F 161:q
++ÜÛ F 162:q
++ÜÜ F 163:q
++ÜÝ F 164:q
++ÜÞ F 165:q
++Üß F 166:q
++Üà F 167:q
++Üá F 168:q
++Üâ F 169:q
++Üã F 170:q
++Üä F 171:q
++Üå F 172:q
++Üæ F 173:q
++Üç F 174:q
++Üè F 175:q
++Üé F 176:q
++Üê F 177:q
++Üë F 178:q
++Üì F 179:q
++Üí F 180:q
++Üî F 181:q
++Üï F 182:q
++Üð F 183:q
++Üñ F 184:q
++Üò F 185:q
++Üó F 186:q
++Üô F 187:q
++Üõ F 188:q
++Üö F 189:q
++Ü÷ F 190:q
++Üø F 191:q
++Üù F 192:q
++Üú F 193:q
++Üû F 194:q
++Üü F 195:q
++Üý F 196:q
++Üþ F 197:q
++ݡ F 198:q
++ݢ F 199:q
++ݣ F 200:q
++ݤ F 201:q
++ݥ F 202:q
++ݦ F 203:q
++ݧ F 204:q
++ݨ F 205:q
++ݩ F 206:q
++ݪ F 207:q
++ݫ F 208:q
++ݬ F 209:q
++ݭ F 210:q
++ݮ F 211:q
++ݯ F 212:q
++ݰ F 213:q
++ݱ F 214:q
++ݲ F 215:q
++ݳ F 216:q
++ݴ F 217:q
++ݵ F 218:q
++ݶ F 219:q
++ݷ F 220:q
++ݸ F 221:q
++ݹ F 222:q
++ݺ F 223:q
++ݻ F 224:q
++ݼ F 225:q
++ݽ F 226:q
++ݾ F 227:q
++ݿ F 228:q
++ÝÀ F 229:q
++ÝÁ F 230:q
++ÝÂ F 231:q
++ÝÃ F 232:q
++ÝÄ F 233:q
++ÝÅ F 234:q
++ÝÆ F 235:q
++ÝÇ F 236:q
++ÝÈ F 237:q
++ÝÉ F 238:q
++ÝÊ F 239:q
++ÝË F 240:q
++ÝÌ F 241:q
++ÝÍ F 242:q
++ÝÎ F 243:q
++ÝÏ F 244:q
++ÝÐ F 245:q
++ÝÑ F 246:q
++ÝÒ F 247:q
++ÝÓ F 248:q
++ÝÔ F 249:q
++ÝÕ F 250:q
++ÝÖ F 251:q
++Ý× F 252:q
++ÝØ F 253:q
++ÝÙ F 254:q
++ÝÚ F 255:q
++ÝÛ F 0:r
++ÝÜ F 1:r
++ÝÝ F 2:r
++ÝÞ F 3:r
++Ýß F 4:r
++Ýà F 5:r
++Ýá F 6:r
++Ýâ F 7:r
++Ýã F 8:r
++Ýä F 9:r
++Ýå F 10:r
++Ýæ F 11:r
++Ýç F 12:r
++Ýè F 13:r
++Ýé F 14:r
++Ýê F 15:r
++Ýë F 16:r
++Ýì F 17:r
++Ýí F 18:r
++Ýî F 19:r
++Ýï F 20:r
++Ýð F 21:r
++Ýñ F 22:r
++Ýò F 23:r
++Ýó F 24:r
++Ýô F 25:r
++Ýõ F 26:r
++Ýö F 27:r
++Ý÷ F 28:r
++Ýø F 29:r
++Ýù F 30:r
++Ýú F 31:r
++Ýû F 32:r
++Ýü F 33:r
++Ýý F 34:r
++Ýþ F 35:r
++ޡ F 36:r
++ޢ F 37:r
++ޣ F 38:r
++ޤ F 39:r
++ޥ F 40:r
++ަ F 41:r
++ާ F 42:r
++ި F 43:r
++ީ F 44:r
++ު F 45:r
++ޫ F 46:r
++ެ F 47:r
++ޭ F 48:r
++ޮ F 49:r
++ޯ F 50:r
++ް F 51:r
++ޱ F 52:r
++ F 53:r
++ F 54:r
++ F 55:r
++ F 56:r
++ F 57:r
++ F 58:r
++ F 59:r
++ F 60:r
++ F 61:r
++ F 62:r
++ F 63:r
++ F 64:r
++ F 65:r
++ F 66:r
++ÞÀ F 67:r
++ÞÁ F 68:r
++ÞÂ F 69:r
++ÞÃ F 70:r
++ÞÄ F 71:r
++ÞÅ F 72:r
++ÞÆ F 73:r
++ÞÇ F 74:r
++ÞÈ F 75:r
++ÞÉ F 76:r
++ÞÊ F 77:r
++ÞË F 78:r
++ÞÌ F 79:r
++ÞÍ F 80:r
++ÞÎ F 81:r
++ÞÏ F 82:r
++ÞÐ F 83:r
++ÞÑ F 84:r
++ÞÒ F 85:r
++ÞÓ F 86:r
++ÞÔ F 87:r
++ÞÕ F 88:r
++ÞÖ F 89:r
++Þ× F 90:r
++ÞØ F 91:r
++ÞÙ F 92:r
++ÞÚ F 93:r
++ÞÛ F 94:r
++ÞÜ F 95:r
++ÞÝ F 96:r
++ÞÞ F 97:r
++Þß F 98:r
++Þà F 99:r
++Þá F 100:r
++Þâ F 101:r
++Þã F 102:r
++Þä F 103:r
++Þå F 104:r
++Þæ F 105:r
++Þç F 106:r
++Þè F 107:r
++Þé F 108:r
++Þê F 109:r
++Þë F 110:r
++Þì F 111:r
++Þí F 112:r
++Þî F 113:r
++Þï F 114:r
++Þð F 115:r
++Þñ F 116:r
++Þò F 117:r
++Þó F 118:r
++Þô F 119:r
++Þõ F 120:r
++Þö F 121:r
++Þ÷ F 122:r
++Þø F 123:r
++Þù F 124:r
++Þú F 125:r
++Þû F 126:r
++Þü F 127:r
++Þý F 128:r
++Þþ F 129:r
++ߡ F 130:r
++ߢ F 131:r
++ߣ F 132:r
++ߤ F 133:r
++ߥ F 134:r
++ߦ F 135:r
++ߧ F 136:r
++ߨ F 137:r
++ߩ F 138:r
++ߪ F 139:r
++߫ F 140:r
++߬ F 141:r
++߭ F 142:r
++߮ F 143:r
++߯ F 144:r
++߰ F 145:r
++߱ F 146:r
++߲ F 147:r
++߳ F 148:r
++ߴ F 149:r
++ߵ F 150:r
++߶ F 151:r
++߷ F 152:r
++߸ F 153:r
++߹ F 154:r
++ߺ F 155:r
++ F 156:r
++ F 157:r
++߽ F 158:r
++߾ F 159:r
++߿ F 160:r
++ßÀ F 161:r
++ßÁ F 162:r
++ß F 163:r
++ßà F 164:r
++ᎠF 165:r
++ᏠF 166:r
++ᒠF 167:r
++ဠF 168:r
++ßÈ F 169:r
++ᐠF 170:r
++ßÊ F 171:r
++ßË F 172:r
++ßÌ F 173:r
++ßÍ F 174:r
++ßÎ F 175:r
++ßÏ F 176:r
++ßÐ F 177:r
++ᥠF 178:r
++ßÒ F 179:r
++ßÓ F 180:r
++ßÔ F 181:r
++ßÕ F 182:r
++ßÖ F 183:r
++ß× F 184:r
++ßØ F 185:r
++ßÙ F 186:r
++ßÚ F 187:r
++ßÛ F 188:r
++ᚠF 189:r
++ßÝ F 190:r
++ßÞ F 191:r
++ßß F 192:r
++ßà F 193:r
++ßá F 194:r
++ßâ F 195:r
++ßã F 196:r
++ßä F 197:r
++ßå F 198:r
++ßæ F 199:r
++ßç F 200:r
++ßè F 201:r
++ßé F 202:r
++ßê F 203:r
++ßë F 204:r
++ßì F 205:r
++ßí F 206:r
++ßî F 207:r
++ßï F 208:r
++ßð F 209:r
++ßñ F 210:r
++ßò F 211:r
++ßó F 212:r
++ßô F 213:r
++ßõ F 214:r
++ßö F 215:r
++ß÷ F 216:r
++ßø F 217:r
++ßù F 218:r
++ßú F 219:r
++ßû F 220:r
++ßü F 221:r
++ßý F 222:r
++ßþ F 223:r
++à¡ F 224:r
++ࢠF 225:r
++࣠F 226:r
++ठF 227:r
++ॠF 228:r
++ঠF 229:r
++ৠF 230:r
++ਠF 231:r
++à© F 232:r
++ઠF 233:r
++à« F 234:r
++ଠF 235:r
++à F 236:r
++à® F 237:r
++௠F 238:r
++à° F 239:r
++à± F 240:r
++ಠF 241:r
++à³ F 242:r
++à´ F 243:r
++ൠF 244:r
++චF 245:r
++à· F 246:r
++ภF 247:r
++๠F 248:r
++ຠF 249:r
++à» F 250:r
++༠F 251:r
++འF 252:r
++ྠF 253:r
++à¿ F 254:r
++àÀ F 255:r
++àÁ F 0:s
++à F 1:s
++àà F 2:s
++àÄ F 3:s
++àÅ F 4:s
++àÆ F 5:s
++àÇ F 6:s
++àÈ F 7:s
++àÉ F 8:s
++àÊ F 9:s
++àË F 10:s
++àÌ F 11:s
++àÍ F 12:s
++àÎ F 13:s
++àÏ F 14:s
++àÐ F 15:s
++àÑ F 16:s
++àÒ F 17:s
++àÓ F 18:s
++àÔ F 19:s
++àÕ F 20:s
++àÖ F 21:s
++à× F 22:s
++àØ F 23:s
++àÙ F 24:s
++àÚ F 25:s
++àÛ F 26:s
++àÜ F 27:s
++àÝ F 28:s
++àÞ F 29:s
++àß F 30:s
++àà F 31:s
++àá F 32:s
++àâ F 33:s
++àã F 34:s
++àä F 35:s
++àå F 36:s
++àæ F 37:s
++àç F 38:s
++àè F 39:s
++àé F 40:s
++àê F 41:s
++àë F 42:s
++àì F 43:s
++àí F 44:s
++àî F 45:s
++àï F 46:s
++àð F 47:s
++àñ F 48:s
++àò F 49:s
++àó F 50:s
++àô F 51:s
++àõ F 52:s
++àö F 53:s
++à÷ F 54:s
++àø F 55:s
++àù F 56:s
++àú F 57:s
++àû F 58:s
++àü F 59:s
++àý F 60:s
++àþ F 61:s
++á¡ F 62:s
++ᢠF 63:s
++ᣠF 64:s
++ᤠF 65:s
++ᥠF 66:s
++ᦠF 67:s
++᧠F 68:s
++ᨠF 69:s
++á© F 70:s
++᪠F 71:s
++á« F 72:s
++ᬠF 73:s
++á F 74:s
++á® F 75:s
++ᯠF 76:s
++á° F 77:s
++á± F 78:s
++á² F 79:s
++á³ F 80:s
++á´ F 81:s
++áµ F 82:s
++ᶠF 83:s
++á· F 84:s
++ḠF 85:s
++á¹ F 86:s
++ẠF 87:s
++á» F 88:s
++á¼ F 89:s
++á½ F 90:s
++á¾ F 91:s
++á¿ F 92:s
++áÀ F 93:s
++áÁ F 94:s
++á F 95:s
++áà F 96:s
++áÄ F 97:s
++áÅ F 98:s
++áÆ F 99:s
++áÇ F 100:s
++áÈ F 101:s
++áÉ F 102:s
++áÊ F 103:s
++áË F 104:s
++áÌ F 105:s
++áÍ F 106:s
++áÎ F 107:s
++áÏ F 108:s
++áÐ F 109:s
++áÑ F 110:s
++áÒ F 111:s
++áÓ F 112:s
++áÔ F 113:s
++áÕ F 114:s
++áÖ F 115:s
++á× F 116:s
++áØ F 117:s
++áÙ F 118:s
++áÚ F 119:s
++áÛ F 120:s
++áÜ F 121:s
++áÝ F 122:s
++áÞ F 123:s
++áß F 124:s
++áà F 125:s
++áá F 126:s
++áâ F 127:s
++áã F 128:s
++áä F 129:s
++áå F 130:s
++áæ F 131:s
++áç F 132:s
++áè F 133:s
++áé F 134:s
++áê F 135:s
++áë F 136:s
++áì F 137:s
++áí F 138:s
++áî F 139:s
++áï F 140:s
++áð F 141:s
++áñ F 142:s
++áò F 143:s
++áó F 144:s
++áô F 145:s
++áõ F 146:s
++áö F 147:s
++á÷ F 148:s
++áø F 149:s
++áù F 150:s
++áú F 151:s
++áû F 152:s
++áü F 153:s
++áý F 154:s
++áþ F 155:s
++â¡ F 156:s
++⢠F 157:s
++⣠F 158:s
++⤠F 159:s
++⥠F 160:s
++⦠F 161:s
++⧠F 162:s
++⨠F 163:s
++â© F 164:s
++⪠F 165:s
++â« F 166:s
++⬠F 167:s
++â F 168:s
++â® F 169:s
++⯠F 170:s
++â° F 171:s
++â± F 172:s
++â² F 173:s
++â³ F 174:s
++â´ F 175:s
++âµ F 176:s
++ⶠF 177:s
++â· F 178:s
++⸠F 179:s
++â¹ F 180:s
++⺠F 181:s
++â» F 182:s
++â¼ F 183:s
++â½ F 184:s
++â¾ F 185:s
++â¿ F 186:s
++âÀ F 187:s
++âÁ F 188:s
++â F 189:s
++âà F 190:s
++âÄ F 191:s
++âÅ F 192:s
++âÆ F 193:s
++âÇ F 194:s
++âÈ F 195:s
++âÉ F 196:s
++âÊ F 197:s
++âË F 198:s
++âÌ F 199:s
++âÍ F 200:s
++âÎ F 201:s
++âÏ F 202:s
++âÐ F 203:s
++âÑ F 204:s
++âÒ F 205:s
++âÓ F 206:s
++âÔ F 207:s
++âÕ F 208:s
++âÖ F 209:s
++â× F 210:s
++âØ F 211:s
++âÙ F 212:s
++âÚ F 213:s
++âÛ F 214:s
++âÜ F 215:s
++âÝ F 216:s
++âÞ F 217:s
++âß F 218:s
++âà F 219:s
++âá F 220:s
++ââ F 221:s
++âã F 222:s
++âä F 223:s
++âå F 224:s
++âæ F 225:s
++âç F 226:s
++âè F 227:s
++âé F 228:s
++âê F 229:s
++âë F 230:s
++âì F 231:s
++âí F 232:s
++âî F 233:s
++âï F 234:s
++âð F 235:s
++âñ F 236:s
++âò F 237:s
++âó F 238:s
++âô F 239:s
++âõ F 240:s
++âö F 241:s
++â÷ F 242:s
++âø F 243:s
++âù F 244:s
++âú F 245:s
++âû F 246:s
++âü F 247:s
++âý F 248:s
++âþ F 249:s
++ã¡ F 250:s
++㢠F 251:s
++㣠F 252:s
++㤠F 253:s
++㥠F 254:s
++㦠F 255:s
++㧠F 0:t
++㨠F 1:t
++ã© F 2:t
++㪠F 3:t
++ã« F 4:t
++㬠F 5:t
++ã F 6:t
++ã® F 7:t
++㯠F 8:t
++ã° F 9:t
++ã± F 10:t
++ã² F 11:t
++ã³ F 12:t
++ã´ F 13:t
++ãµ F 14:t
++㶠F 15:t
++ã· F 16:t
++㸠F 17:t
++ã¹ F 18:t
++㺠F 19:t
++ã» F 20:t
++ã¼ F 21:t
++ã½ F 22:t
++ã¾ F 23:t
++ã¿ F 24:t
++ãÀ F 25:t
++ãÁ F 26:t
++ã F 27:t
++ãà F 28:t
++ãÄ F 29:t
++ãÅ F 30:t
++ãÆ F 31:t
++ãÇ F 32:t
++ãÈ F 33:t
++ãÉ F 34:t
++ãÊ F 35:t
++ãË F 36:t
++ãÌ F 37:t
++ãÍ F 38:t
++ãÎ F 39:t
++ãÏ F 40:t
++ãÐ F 41:t
++ãÑ F 42:t
++ãÒ F 43:t
++ãÓ F 44:t
++ãÔ F 45:t
++ãÕ F 46:t
++ãÖ F 47:t
++ã× F 48:t
++ãØ F 49:t
++ãÙ F 50:t
++ãÚ F 51:t
++ãÛ F 52:t
++ãÜ F 53:t
++ãÝ F 54:t
++ãÞ F 55:t
++ãß F 56:t
++ãà F 57:t
++ãá F 58:t
++ãâ F 59:t
++ãã F 60:t
++ãä F 61:t
++ãå F 62:t
++ãæ F 63:t
++ãç F 64:t
++ãè F 65:t
++ãé F 66:t
++ãê F 67:t
++ãë F 68:t
++ãì F 69:t
++ãí F 70:t
++ãî F 71:t
++ãï F 72:t
++ãð F 73:t
++ãñ F 74:t
++ãò F 75:t
++ãó F 76:t
++ãô F 77:t
++ãõ F 78:t
++ãö F 79:t
++ã÷ F 80:t
++ãø F 81:t
++ãù F 82:t
++ãú F 83:t
++ãû F 84:t
++ãü F 85:t
++ãý F 86:t
++ãþ F 87:t
++ä¡ F 88:t
++ä¢ F 89:t
++ä£ F 90:t
++ä¤ F 91:t
++ä¥ F 92:t
++ä¦ F 93:t
++ä§ F 94:t
++ä¨ F 95:t
++ä© F 96:t
++äª F 97:t
++ä« F 98:t
++ä¬ F 99:t
++ä F 100:t
++ä® F 101:t
++ä¯ F 102:t
++ä° F 103:t
++ä± F 104:t
++ä² F 105:t
++ä³ F 106:t
++ä´ F 107:t
++äµ F 108:t
++ä¶ F 109:t
++ä· F 110:t
++ä¸ F 111:t
++ä¹ F 112:t
++äº F 113:t
++ä» F 114:t
++ä¼ F 115:t
++ä½ F 116:t
++ä¾ F 117:t
++ä¿ F 118:t
++äÀ F 119:t
++äÁ F 120:t
++ä F 121:t
++äà F 122:t
++äÄ F 123:t
++äÅ F 124:t
++äÆ F 125:t
++äÇ F 126:t
++äÈ F 127:t
++äÉ F 128:t
++äÊ F 129:t
++äË F 130:t
++äÌ F 131:t
++äÍ F 132:t
++äÎ F 133:t
++äÏ F 134:t
++äÐ F 135:t
++äÑ F 136:t
++äÒ F 137:t
++äÓ F 138:t
++äÔ F 139:t
++äÕ F 140:t
++äÖ F 141:t
++ä× F 142:t
++äØ F 143:t
++äÙ F 144:t
++äÚ F 145:t
++äÛ F 146:t
++äÜ F 147:t
++äÝ F 148:t
++äÞ F 149:t
++äß F 150:t
++äà F 151:t
++äá F 152:t
++äâ F 153:t
++äã F 154:t
++ää F 155:t
++äå F 156:t
++äæ F 157:t
++äç F 158:t
++äè F 159:t
++äé F 160:t
++äê F 161:t
++äë F 162:t
++äì F 163:t
++äí F 164:t
++äî F 165:t
++äï F 166:t
++äð F 167:t
++äñ F 168:t
++äò F 169:t
++äó F 170:t
++äô F 171:t
++äõ F 172:t
++äö F 173:t
++ä÷ F 174:t
++äø F 175:t
++äù F 176:t
++äú F 177:t
++äû F 178:t
++äü F 179:t
++äý F 180:t
++äþ F 181:t
++å¡ F 182:t
++å¢ F 183:t
++å£ F 184:t
++å¤ F 185:t
++å¥ F 186:t
++å¦ F 187:t
++å§ F 188:t
++å¨ F 189:t
++å© F 190:t
++åª F 191:t
++å« F 192:t
++å¬ F 193:t
++å F 194:t
++å® F 195:t
++å¯ F 196:t
++å° F 197:t
++å± F 198:t
++å² F 199:t
++å³ F 200:t
++å´ F 201:t
++åµ F 202:t
++å¶ F 203:t
++å· F 204:t
++å¸ F 205:t
++å¹ F 206:t
++åº F 207:t
++å» F 208:t
++å¼ F 209:t
++å½ F 210:t
++å¾ F 211:t
++å¿ F 212:t
++åÀ F 213:t
++åÁ F 214:t
++å F 215:t
++åà F 216:t
++åÄ F 217:t
++åÅ F 218:t
++åÆ F 219:t
++åÇ F 220:t
++åÈ F 221:t
++åÉ F 222:t
++åÊ F 223:t
++åË F 224:t
++åÌ F 225:t
++åÍ F 226:t
++åÎ F 227:t
++åÏ F 228:t
++åÐ F 229:t
++åÑ F 230:t
++åÒ F 231:t
++åÓ F 232:t
++åÔ F 233:t
++åÕ F 234:t
++åÖ F 235:t
++å× F 236:t
++åØ F 237:t
++åÙ F 238:t
++åÚ F 239:t
++åÛ F 240:t
++åÜ F 241:t
++åÝ F 242:t
++åÞ F 243:t
++åß F 244:t
++åà F 245:t
++åá F 246:t
++åâ F 247:t
++åã F 248:t
++åä F 249:t
++åå F 250:t
++åæ F 251:t
++åç F 252:t
++åè F 253:t
++åé F 254:t
++åê F 255:t
++åë F 0:u
++åì F 1:u
++åí F 2:u
++åî F 3:u
++åï F 4:u
++åð F 5:u
++åñ F 6:u
++åò F 7:u
++åó F 8:u
++åô F 9:u
++åõ F 10:u
++åö F 11:u
++å÷ F 12:u
++åø F 13:u
++åù F 14:u
++åú F 15:u
++åû F 16:u
++åü F 17:u
++åý F 18:u
++åþ F 19:u
++æ¡ F 20:u
++æ¢ F 21:u
++æ£ F 22:u
++æ¤ F 23:u
++æ¥ F 24:u
++æ¦ F 25:u
++æ§ F 26:u
++æ¨ F 27:u
++æ© F 28:u
++æª F 29:u
++æ« F 30:u
++æ¬ F 31:u
++æ F 32:u
++æ® F 33:u
++æ¯ F 34:u
++æ° F 35:u
++æ± F 36:u
++æ² F 37:u
++æ³ F 38:u
++æ´ F 39:u
++æµ F 40:u
++æ¶ F 41:u
++æ· F 42:u
++æ¸ F 43:u
++æ¹ F 44:u
++æº F 45:u
++æ» F 46:u
++æ¼ F 47:u
++æ½ F 48:u
++æ¾ F 49:u
++æ¿ F 50:u
++æÀ F 51:u
++æÁ F 52:u
++æ F 53:u
++æà F 54:u
++æÄ F 55:u
++æÅ F 56:u
++æÆ F 57:u
++æÇ F 58:u
++æÈ F 59:u
++æÉ F 60:u
++æÊ F 61:u
++æË F 62:u
++æÌ F 63:u
++æÍ F 64:u
++æÎ F 65:u
++æÏ F 66:u
++æÐ F 67:u
++æÑ F 68:u
++æÒ F 69:u
++æÓ F 70:u
++æÔ F 71:u
++æÕ F 72:u
++æÖ F 73:u
++æ× F 74:u
++æØ F 75:u
++æÙ F 76:u
++æÚ F 77:u
++æÛ F 78:u
++æÜ F 79:u
++æÝ F 80:u
++æÞ F 81:u
++æß F 82:u
++æà F 83:u
++æá F 84:u
++æâ F 85:u
++æã F 86:u
++æä F 87:u
++æå F 88:u
++ææ F 89:u
++æç F 90:u
++æè F 91:u
++æé F 92:u
++æê F 93:u
++æë F 94:u
++æì F 95:u
++æí F 96:u
++æî F 97:u
++æï F 98:u
++æð F 99:u
++æñ F 100:u
++æò F 101:u
++æó F 102:u
++æô F 103:u
++æõ F 104:u
++æö F 105:u
++æ÷ F 106:u
++æø F 107:u
++æù F 108:u
++æú F 109:u
++æû F 110:u
++æü F 111:u
++æý F 112:u
++æþ F 113:u
++ç¡ F 114:u
++ç¢ F 115:u
++ç£ F 116:u
++ç¤ F 117:u
++ç¥ F 118:u
++ç¦ F 119:u
++ç§ F 120:u
++ç¨ F 121:u
++ç© F 122:u
++çª F 123:u
++ç« F 124:u
++ç¬ F 125:u
++ç F 126:u
++ç® F 127:u
++ç¯ F 128:u
++ç° F 129:u
++ç± F 130:u
++ç² F 131:u
++ç³ F 132:u
++ç´ F 133:u
++çµ F 134:u
++ç¶ F 135:u
++ç· F 136:u
++ç¸ F 137:u
++ç¹ F 138:u
++çº F 139:u
++ç» F 140:u
++ç¼ F 141:u
++ç½ F 142:u
++ç¾ F 143:u
++ç¿ F 144:u
++çÀ F 145:u
++çÁ F 146:u
++ç F 147:u
++çà F 148:u
++çÄ F 149:u
++çÅ F 150:u
++çÆ F 151:u
++çÇ F 152:u
++çÈ F 153:u
++çÉ F 154:u
++çÊ F 155:u
++çË F 156:u
++çÌ F 157:u
++çÍ F 158:u
++çÎ F 159:u
++çÏ F 160:u
++çÐ F 161:u
++çÑ F 162:u
++çÒ F 163:u
++çÓ F 164:u
++çÔ F 165:u
++çÕ F 166:u
++çÖ F 167:u
++ç× F 168:u
++çØ F 169:u
++çÙ F 170:u
++çÚ F 171:u
++çÛ F 172:u
++çÜ F 173:u
++çÝ F 174:u
++çÞ F 175:u
++çß F 176:u
++çà F 177:u
++çá F 178:u
++çâ F 179:u
++çã F 180:u
++çä F 181:u
++çå F 182:u
++çæ F 183:u
++çç F 184:u
++çè F 185:u
++çé F 186:u
++çê F 187:u
++çë F 188:u
++çì F 189:u
++çí F 190:u
++çî F 191:u
++çï F 192:u
++çð F 193:u
++çñ F 194:u
++çò F 195:u
++çó F 196:u
++çô F 197:u
++çõ F 198:u
++çö F 199:u
++ç÷ F 200:u
++çø F 201:u
++çù F 202:u
++çú F 203:u
++çû F 204:u
++çü F 205:u
++çý F 206:u
++çþ F 207:u
++è¡ F 208:u
++è¢ F 209:u
++è£ F 210:u
++è¤ F 211:u
++è¥ F 212:u
++è¦ F 213:u
++è§ F 214:u
++è¨ F 215:u
++è© F 216:u
++èª F 217:u
++è« F 218:u
++è¬ F 219:u
++è F 220:u
++è® F 221:u
++è¯ F 222:u
++è° F 223:u
++è± F 224:u
++è² F 225:u
++è³ F 226:u
++è´ F 227:u
++èµ F 228:u
++è¶ F 229:u
++è· F 230:u
++è¸ F 231:u
++è¹ F 232:u
++èº F 233:u
++è» F 234:u
++è¼ F 235:u
++è½ F 236:u
++è¾ F 237:u
++è¿ F 238:u
++èÀ F 239:u
++èÁ F 240:u
++è F 241:u
++èà F 242:u
++èÄ F 243:u
++èÅ F 244:u
++èÆ F 245:u
++èÇ F 246:u
++èÈ F 247:u
++èÉ F 248:u
++èÊ F 249:u
++èË F 250:u
++èÌ F 251:u
++èÍ F 252:u
++èÎ F 253:u
++èÏ F 254:u
++èÐ F 255:u
++èÑ F 0:v
++èÒ F 1:v
++èÓ F 2:v
++èÔ F 3:v
++èÕ F 4:v
++èÖ F 5:v
++è× F 6:v
++èØ F 7:v
++èÙ F 8:v
++èÚ F 9:v
++èÛ F 10:v
++èÜ F 11:v
++èÝ F 12:v
++èÞ F 13:v
++èß F 14:v
++èà F 15:v
++èá F 16:v
++èâ F 17:v
++èã F 18:v
++èä F 19:v
++èå F 20:v
++èæ F 21:v
++èç F 22:v
++èè F 23:v
++èé F 24:v
++èê F 25:v
++èë F 26:v
++èì F 27:v
++èí F 28:v
++èî F 29:v
++èï F 30:v
++èð F 31:v
++èñ F 32:v
++èò F 33:v
++èó F 34:v
++èô F 35:v
++èõ F 36:v
++èö F 37:v
++è÷ F 38:v
++èø F 39:v
++èù F 40:v
++èú F 41:v
++èû F 42:v
++èü F 43:v
++èý F 44:v
++èþ F 45:v
++é¡ F 46:v
++é¢ F 47:v
++é£ F 48:v
++é¤ F 49:v
++é¥ F 50:v
++é¦ F 51:v
++é§ F 52:v
++é¨ F 53:v
++é© F 54:v
++éª F 55:v
++é« F 56:v
++é¬ F 57:v
++é F 58:v
++é® F 59:v
++é¯ F 60:v
++é° F 61:v
++é± F 62:v
++é² F 63:v
++é³ F 64:v
++é´ F 65:v
++éµ F 66:v
++é¶ F 67:v
++é· F 68:v
++é¸ F 69:v
++é¹ F 70:v
++éº F 71:v
++é» F 72:v
++é¼ F 73:v
++é½ F 74:v
++é¾ F 75:v
++é¿ F 76:v
++éÀ F 77:v
++éÁ F 78:v
++é F 79:v
++éà F 80:v
++éÄ F 81:v
++éÅ F 82:v
++éÆ F 83:v
++éÇ F 84:v
++éÈ F 85:v
++éÉ F 86:v
++éÊ F 87:v
++éË F 88:v
++éÌ F 89:v
++éÍ F 90:v
++éÎ F 91:v
++éÏ F 92:v
++éÐ F 93:v
++éÑ F 94:v
++éÒ F 95:v
++éÓ F 96:v
++éÔ F 97:v
++éÕ F 98:v
++éÖ F 99:v
++é× F 100:v
++éØ F 101:v
++éÙ F 102:v
++éÚ F 103:v
++éÛ F 104:v
++éÜ F 105:v
++éÝ F 106:v
++éÞ F 107:v
++éß F 108:v
++éà F 109:v
++éá F 110:v
++éâ F 111:v
++éã F 112:v
++éä F 113:v
++éå F 114:v
++éæ F 115:v
++éç F 116:v
++éè F 117:v
++éé F 118:v
++éê F 119:v
++éë F 120:v
++éì F 121:v
++éí F 122:v
++éî F 123:v
++éï F 124:v
++éð F 125:v
++éñ F 126:v
++éò F 127:v
++éó F 128:v
++éô F 129:v
++éõ F 130:v
++éö F 131:v
++é÷ F 132:v
++éø F 133:v
++éù F 134:v
++éú F 135:v
++éû F 136:v
++éü F 137:v
++éý F 138:v
++éþ F 139:v
++ê¡ F 140:v
++ê¢ F 141:v
++ê£ F 142:v
++ê¤ F 143:v
++ê¥ F 144:v
++ê¦ F 145:v
++ê§ F 146:v
++ê¨ F 147:v
++ê© F 148:v
++êª F 149:v
++ê« F 150:v
++ê¬ F 151:v
++ê F 152:v
++ê® F 153:v
++ê¯ F 154:v
++ê° F 155:v
++ê± F 156:v
++ê² F 157:v
++ê³ F 158:v
++ê´ F 159:v
++êµ F 160:v
++ê¶ F 161:v
++ê· F 162:v
++ê¸ F 163:v
++ê¹ F 164:v
++êº F 165:v
++ê» F 166:v
++ê¼ F 167:v
++ê½ F 168:v
++ê¾ F 169:v
++ê¿ F 170:v
++êÀ F 171:v
++êÁ F 172:v
++ê F 173:v
++êà F 174:v
++êÄ F 175:v
++êÅ F 176:v
++êÆ F 177:v
++êÇ F 178:v
++êÈ F 179:v
++êÉ F 180:v
++êÊ F 181:v
++êË F 182:v
++êÌ F 183:v
++êÍ F 184:v
++êÎ F 185:v
++êÏ F 186:v
++êÐ F 187:v
++êÑ F 188:v
++êÒ F 189:v
++êÓ F 190:v
++êÔ F 191:v
++êÕ F 192:v
++êÖ F 193:v
++ê× F 194:v
++êØ F 195:v
++êÙ F 196:v
++êÚ F 197:v
++êÛ F 198:v
++êÜ F 199:v
++êÝ F 200:v
++êÞ F 201:v
++êß F 202:v
++êà F 203:v
++êá F 204:v
++êâ F 205:v
++êã F 206:v
++êä F 207:v
++êå F 208:v
++êæ F 209:v
++êç F 210:v
++êè F 211:v
++êé F 212:v
++êê F 213:v
++êë F 214:v
++êì F 215:v
++êí F 216:v
++êî F 217:v
++êï F 218:v
++êð F 219:v
++êñ F 220:v
++êò F 221:v
++êó F 222:v
++êô F 223:v
++êõ F 224:v
++êö F 225:v
++ê÷ F 226:v
++êø F 227:v
++êù F 228:v
++êú F 229:v
++êû F 230:v
++êü F 231:v
++êý F 232:v
++êþ F 233:v
++ë¡ F 234:v
++ë¢ F 235:v
++ë£ F 236:v
++ë¤ F 237:v
++ë¥ F 238:v
++ë¦ F 239:v
++ë§ F 240:v
++ë¨ F 241:v
++ë© F 242:v
++ëª F 243:v
++ë« F 244:v
++ë¬ F 245:v
++ë F 246:v
++ë® F 247:v
++ë¯ F 248:v
++ë° F 249:v
++ë± F 250:v
++ë² F 251:v
++ë³ F 252:v
++ë´ F 253:v
++ëµ F 254:v
++ë¶ F 255:v
++ë· F 0:w
++ë¸ F 1:w
++ë¹ F 2:w
++ëº F 3:w
++ë» F 4:w
++ë¼ F 5:w
++ë½ F 6:w
++ë¾ F 7:w
++ë¿ F 8:w
++ëÀ F 9:w
++ëÁ F 10:w
++ë F 11:w
++ëà F 12:w
++ëÄ F 13:w
++ëÅ F 14:w
++ëÆ F 15:w
++ëÇ F 16:w
++ëÈ F 17:w
++ëÉ F 18:w
++ëÊ F 19:w
++ëË F 20:w
++ëÌ F 21:w
++ëÍ F 22:w
++ëÎ F 23:w
++ëÏ F 24:w
++ëÐ F 25:w
++ëÑ F 26:w
++ëÒ F 27:w
++ëÓ F 28:w
++ëÔ F 29:w
++ëÕ F 30:w
++ëÖ F 31:w
++ë× F 32:w
++ëØ F 33:w
++ëÙ F 34:w
++ëÚ F 35:w
++ëÛ F 36:w
++ëÜ F 37:w
++ëÝ F 38:w
++ëÞ F 39:w
++ëß F 40:w
++ëà F 41:w
++ëá F 42:w
++ëâ F 43:w
++ëã F 44:w
++ëä F 45:w
++ëå F 46:w
++ëæ F 47:w
++ëç F 48:w
++ëè F 49:w
++ëé F 50:w
++ëê F 51:w
++ëë F 52:w
++ëì F 53:w
++ëí F 54:w
++ëî F 55:w
++ëï F 56:w
++ëð F 57:w
++ëñ F 58:w
++ëò F 59:w
++ëó F 60:w
++ëô F 61:w
++ëõ F 62:w
++ëö F 63:w
++ë÷ F 64:w
++ëø F 65:w
++ëù F 66:w
++ëú F 67:w
++ëû F 68:w
++ëü F 69:w
++ëý F 70:w
++ëþ F 71:w
++ì¡ F 72:w
++ì¢ F 73:w
++ì£ F 74:w
++ì¤ F 75:w
++ì¥ F 76:w
++ì¦ F 77:w
++ì§ F 78:w
++ì¨ F 79:w
++ì© F 80:w
++ìª F 81:w
++ì« F 82:w
++ì¬ F 83:w
++ì F 84:w
++ì® F 85:w
++ì¯ F 86:w
++ì° F 87:w
++ì± F 88:w
++ì² F 89:w
++ì³ F 90:w
++ì´ F 91:w
++ìµ F 92:w
++ì¶ F 93:w
++ì· F 94:w
++ì¸ F 95:w
++ì¹ F 96:w
++ìº F 97:w
++ì» F 98:w
++ì¼ F 99:w
++ì½ F 100:w
++ì¾ F 101:w
++ì¿ F 102:w
++ìÀ F 103:w
++ìÁ F 104:w
++ì F 105:w
++ìà F 106:w
++ìÄ F 107:w
++ìÅ F 108:w
++ìÆ F 109:w
++ìÇ F 110:w
++ìÈ F 111:w
++ìÉ F 112:w
++ìÊ F 113:w
++ìË F 114:w
++ìÌ F 115:w
++ìÍ F 116:w
++ìÎ F 117:w
++ìÏ F 118:w
++ìÐ F 119:w
++ìÑ F 120:w
++ìÒ F 121:w
++ìÓ F 122:w
++ìÔ F 123:w
++ìÕ F 124:w
++ìÖ F 125:w
++ì× F 126:w
++ìØ F 127:w
++ìÙ F 128:w
++ìÚ F 129:w
++ìÛ F 130:w
++ìÜ F 131:w
++ìÝ F 132:w
++ìÞ F 133:w
++ìß F 134:w
++ìà F 135:w
++ìá F 136:w
++ìâ F 137:w
++ìã F 138:w
++ìä F 139:w
++ìå F 140:w
++ìæ F 141:w
++ìç F 142:w
++ìè F 143:w
++ìé F 144:w
++ìê F 145:w
++ìë F 146:w
++ìì F 147:w
++ìí F 148:w
++ìî F 149:w
++ìï F 150:w
++ìð F 151:w
++ìñ F 152:w
++ìò F 153:w
++ìó F 154:w
++ìô F 155:w
++ìõ F 156:w
++ìö F 157:w
++ì÷ F 158:w
++ìø F 159:w
++ìù F 160:w
++ìú F 161:w
++ìû F 162:w
++ìü F 163:w
++ìý F 164:w
++ìþ F 165:w
++í¡ F 166:w
++í¢ F 167:w
++í£ F 168:w
++í¤ F 169:w
++í¥ F 170:w
++í¦ F 171:w
++í§ F 172:w
++í¨ F 173:w
++í© F 174:w
++íª F 175:w
++í« F 176:w
++í¬ F 177:w
++í F 178:w
++í® F 179:w
++í¯ F 180:w
++í° F 181:w
++í± F 182:w
++í² F 183:w
++í³ F 184:w
++í´ F 185:w
++íµ F 186:w
++í¶ F 187:w
++í· F 188:w
++í¸ F 189:w
++í¹ F 190:w
++íº F 191:w
++í» F 192:w
++í¼ F 193:w
++í½ F 194:w
++í¾ F 195:w
++í¿ F 196:w
++íÀ F 197:w
++íÁ F 198:w
++í F 199:w
++íà F 200:w
++íÄ F 201:w
++íÅ F 202:w
++íÆ F 203:w
++íÇ F 204:w
++íÈ F 205:w
++íÉ F 206:w
++íÊ F 207:w
++íË F 208:w
++íÌ F 209:w
++íÍ F 210:w
++íÎ F 211:w
++íÏ F 212:w
++íÐ F 213:w
++íÑ F 214:w
++íÒ F 215:w
++íÓ F 216:w
++íÔ F 217:w
++íÕ F 218:w
++íÖ F 219:w
++í× F 220:w
++íØ F 221:w
++íÙ F 222:w
++íÚ F 223:w
++íÛ F 224:w
++íÜ F 225:w
++íÝ F 226:w
++íÞ F 227:w
++íß F 228:w
++íà F 229:w
++íá F 230:w
++íâ F 231:w
++íã F 232:w
++íä F 233:w
++íå F 234:w
++íæ F 235:w
++íç F 236:w
++íè F 237:w
++íé F 238:w
++íê F 239:w
++íë F 240:w
++íì F 241:w
++íí F 242:w
++íî F 243:w
++íï F 244:w
++íð F 245:w
++íñ F 246:w
++íò F 247:w
++íó F 248:w
++íô F 249:w
++íõ F 250:w
++íö F 251:w
++í÷ F 252:w
++íø F 253:w
++íù F 254:w
++íú F 255:w
++íû F 0:x
++íü F 1:x
++íý F 2:x
++íþ F 3:x
++î¡ F 4:x
++î¢ F 5:x
++î£ F 6:x
++î¤ F 7:x
++î¥ F 8:x
++î¦ F 9:x
++î§ F 10:x
++î¨ F 11:x
++î© F 12:x
++îª F 13:x
++î« F 14:x
++î¬ F 15:x
++î F 16:x
++î® F 17:x
++î¯ F 18:x
++î° F 19:x
++î± F 20:x
++î² F 21:x
++î³ F 22:x
++î´ F 23:x
++îµ F 24:x
++î¶ F 25:x
++î· F 26:x
++î¸ F 27:x
++î¹ F 28:x
++îº F 29:x
++î» F 30:x
++î¼ F 31:x
++î½ F 32:x
++î¾ F 33:x
++î¿ F 34:x
++îÀ F 35:x
++îÁ F 36:x
++î F 37:x
++îà F 38:x
++îÄ F 39:x
++îÅ F 40:x
++îÆ F 41:x
++îÇ F 42:x
++îÈ F 43:x
++îÉ F 44:x
++îÊ F 45:x
++îË F 46:x
++îÌ F 47:x
++îÍ F 48:x
++îÎ F 49:x
++îÏ F 50:x
++îÐ F 51:x
++îÑ F 52:x
++îÒ F 53:x
++îÓ F 54:x
++îÔ F 55:x
++îÕ F 56:x
++îÖ F 57:x
++î× F 58:x
++îØ F 59:x
++îÙ F 60:x
++îÚ F 61:x
++îÛ F 62:x
++îÜ F 63:x
++îÝ F 64:x
++îÞ F 65:x
++îß F 66:x
++îà F 67:x
++îá F 68:x
++îâ F 69:x
++îã F 70:x
++îä F 71:x
++îå F 72:x
++îæ F 73:x
++îç F 74:x
++îè F 75:x
++îé F 76:x
++îê F 77:x
++îë F 78:x
++îì F 79:x
++îí F 80:x
++îî F 81:x
++îï F 82:x
++îð F 83:x
++îñ F 84:x
++îò F 85:x
++îó F 86:x
++îô F 87:x
++îõ F 88:x
++îö F 89:x
++î÷ F 90:x
++îø F 91:x
++îù F 92:x
++îú F 93:x
++îû F 94:x
++îü F 95:x
++îý F 96:x
++îþ F 97:x
++ï¡ F 98:x
++ï¢ F 99:x
++ï£ F 100:x
++ï¤ F 101:x
++ï¥ F 102:x
++ï¦ F 103:x
++ï§ F 104:x
++ï¨ F 105:x
++ï© F 106:x
++ïª F 107:x
++ï« F 108:x
++ï¬ F 109:x
++ï F 110:x
++ï® F 111:x
++ï¯ F 112:x
++ï° F 113:x
++ï± F 114:x
++ï² F 115:x
++ï³ F 116:x
++ï´ F 117:x
++ïµ F 118:x
++ï¶ F 119:x
++ï· F 120:x
++ï¸ F 121:x
++ï¹ F 122:x
++ïº F 123:x
++ï» F 124:x
++ï¼ F 125:x
++ï½ F 126:x
++ï¾ F 127:x
++ï¿ F 128:x
++ïÀ F 129:x
++ïÁ F 130:x
++ï F 131:x
++ïà F 132:x
++ïÄ F 133:x
++ïÅ F 134:x
++ïÆ F 135:x
++ïÇ F 136:x
++ïÈ F 137:x
++ïÉ F 138:x
++ïÊ F 139:x
++ïË F 140:x
++ïÌ F 141:x
++ïÍ F 142:x
++ïÎ F 143:x
++ïÏ F 144:x
++ïÐ F 145:x
++ïÑ F 146:x
++ïÒ F 147:x
++ïÓ F 148:x
++ïÔ F 149:x
++ïÕ F 150:x
++ïÖ F 151:x
++ï× F 152:x
++ïØ F 153:x
++ïÙ F 154:x
++ïÚ F 155:x
++ïÛ F 156:x
++ïÜ F 157:x
++ïÝ F 158:x
++ïÞ F 159:x
++ïß F 160:x
++ïà F 161:x
++ïá F 162:x
++ïâ F 163:x
++ïã F 164:x
++ïä F 165:x
++ïå F 166:x
++ïæ F 167:x
++ïç F 168:x
++ïè F 169:x
++ïé F 170:x
++ïê F 171:x
++ïë F 172:x
++ïì F 173:x
++ïí F 174:x
++ïî F 175:x
++ïï F 176:x
++ïð F 177:x
++ïñ F 178:x
++ïò F 179:x
++ïó F 180:x
++ïô F 181:x
++ïõ F 182:x
++ïö F 183:x
++ï÷ F 184:x
++ïø F 185:x
++ïù F 186:x
++ïú F 187:x
++ïû F 188:x
++ïü F 189:x
++ïý F 190:x
++ïþ F 191:x
++ð¡ F 192:x
++ð¢ F 193:x
++ð£ F 194:x
++ð¤ F 195:x
++ð¥ F 196:x
++ð¦ F 197:x
++ð§ F 198:x
++ð¨ F 199:x
++ð© F 200:x
++ðª F 201:x
++ð« F 202:x
++ð¬ F 203:x
++ð F 204:x
++ð® F 205:x
++ð¯ F 206:x
++ð° F 207:x
++ð± F 208:x
++ð² F 209:x
++ð³ F 210:x
++ð´ F 211:x
++ðµ F 212:x
++ð¶ F 213:x
++ð· F 214:x
++ð¸ F 215:x
++ð¹ F 216:x
++ðº F 217:x
++ð» F 218:x
++ð¼ F 219:x
++ð½ F 220:x
++ð¾ F 221:x
++ð¿ F 222:x
++ðÀ F 223:x
++ðÁ F 224:x
++ð F 225:x
++ðà F 226:x
++ðÄ F 227:x
++ðÅ F 228:x
++ðÆ F 229:x
++ðÇ F 230:x
++ðÈ F 231:x
++ðÉ F 232:x
++ðÊ F 233:x
++ðË F 234:x
++ðÌ F 235:x
++ðÍ F 236:x
++ðÎ F 237:x
++ðÏ F 238:x
++ðÐ F 239:x
++ðÑ F 240:x
++ðÒ F 241:x
++ðÓ F 242:x
++ðÔ F 243:x
++ðÕ F 244:x
++ðÖ F 245:x
++ð× F 246:x
++ðØ F 247:x
++ðÙ F 248:x
++ðÚ F 249:x
++ðÛ F 250:x
++ðÜ F 251:x
++ðÝ F 252:x
++ðÞ F 253:x
++ðß F 254:x
++ðà F 255:x
++ðá F 0:y
++ðâ F 1:y
++ðã F 2:y
++ðä F 3:y
++ðå F 4:y
++ðæ F 5:y
++ðç F 6:y
++ðè F 7:y
++ðé F 8:y
++ðê F 9:y
++ðë F 10:y
++ðì F 11:y
++ðí F 12:y
++ðî F 13:y
++ðï F 14:y
++ðð F 15:y
++ðñ F 16:y
++ðò F 17:y
++ðó F 18:y
++ðô F 19:y
++ðõ F 20:y
++ðö F 21:y
++ð÷ F 22:y
++ðø F 23:y
++ðù F 24:y
++ðú F 25:y
++ðû F 26:y
++ðü F 27:y
++ðý F 28:y
++ðþ F 29:y
++ñ¡ F 30:y
++ñ¢ F 31:y
++ñ£ F 32:y
++ñ¤ F 33:y
++ñ¥ F 34:y
++ñ¦ F 35:y
++ñ§ F 36:y
++ñ¨ F 37:y
++ñ© F 38:y
++ñª F 39:y
++ñ« F 40:y
++ñ¬ F 41:y
++ñ F 42:y
++ñ® F 43:y
++ñ¯ F 44:y
++ñ° F 45:y
++ñ± F 46:y
++ñ² F 47:y
++ñ³ F 48:y
++ñ´ F 49:y
++ñµ F 50:y
++ñ¶ F 51:y
++ñ· F 52:y
++ñ¸ F 53:y
++ñ¹ F 54:y
++ñº F 55:y
++ñ» F 56:y
++ñ¼ F 57:y
++ñ½ F 58:y
++ñ¾ F 59:y
++ñ¿ F 60:y
++ñÀ F 61:y
++ñÁ F 62:y
++ñ F 63:y
++ñà F 64:y
++ñÄ F 65:y
++ñÅ F 66:y
++ñÆ F 67:y
++ñÇ F 68:y
++ñÈ F 69:y
++ñÉ F 70:y
++ñÊ F 71:y
++ñË F 72:y
++ñÌ F 73:y
++ñÍ F 74:y
++ñÎ F 75:y
++ñÏ F 76:y
++ñÐ F 77:y
++ñÑ F 78:y
++ñÒ F 79:y
++ñÓ F 80:y
++ñÔ F 81:y
++ñÕ F 82:y
++ñÖ F 83:y
++ñ× F 84:y
++ñØ F 85:y
++ñÙ F 86:y
++ñÚ F 87:y
++ñÛ F 88:y
++ñÜ F 89:y
++ñÝ F 90:y
++ñÞ F 91:y
++ñß F 92:y
++ñà F 93:y
++ñá F 94:y
++ñâ F 95:y
++ñã F 96:y
++ñä F 97:y
++ñå F 98:y
++ñæ F 99:y
++ñç F 100:y
++ñè F 101:y
++ñé F 102:y
++ñê F 103:y
++ñë F 104:y
++ñì F 105:y
++ñí F 106:y
++ñî F 107:y
++ñï F 108:y
++ñð F 109:y
++ññ F 110:y
++ñò F 111:y
++ñó F 112:y
++ñô F 113:y
++ñõ F 114:y
++ñö F 115:y
++ñ÷ F 116:y
++ñø F 117:y
++ñù F 118:y
++ñú F 119:y
++ñû F 120:y
++ñü F 121:y
++ñý F 122:y
++ñþ F 123:y
++ò¡ F 124:y
++ò¢ F 125:y
++ò£ F 126:y
++ò¤ F 127:y
++ò¥ F 128:y
++ò¦ F 129:y
++ò§ F 130:y
++ò¨ F 131:y
++ò© F 132:y
++òª F 133:y
++ò« F 134:y
++ò¬ F 135:y
++ò F 136:y
++ò® F 137:y
++ò¯ F 138:y
++ò° F 139:y
++ò± F 140:y
++ò² F 141:y
++ò³ F 142:y
++ò´ F 143:y
++òµ F 144:y
++ò¶ F 145:y
++ò· F 146:y
++ò¸ F 147:y
++ò¹ F 148:y
++òº F 149:y
++ò» F 150:y
++ò¼ F 151:y
++ò½ F 152:y
++ò¾ F 153:y
++ò¿ F 154:y
++òÀ F 155:y
++òÁ F 156:y
++òÂ F 157:y
++òÃ F 158:y
++òÄ F 159:y
++òÅ F 160:y
++òÆ F 161:y
++òÇ F 162:y
++òÈ F 163:y
++òÉ F 164:y
++òÊ F 165:y
++òË F 166:y
++òÌ F 167:y
++òÍ F 168:y
++òÎ F 169:y
++òÏ F 170:y
++òÐ F 171:y
++òÑ F 172:y
++òÒ F 173:y
++òÓ F 174:y
++òÔ F 175:y
++òÕ F 176:y
++òÖ F 177:y
++ò× F 178:y
++òØ F 179:y
++òÙ F 180:y
++òÚ F 181:y
++òÛ F 182:y
++òÜ F 183:y
++òÝ F 184:y
++òÞ F 185:y
++òß F 186:y
++òà F 187:y
++òá F 188:y
++òâ F 189:y
++òã F 190:y
++òä F 191:y
++òå F 192:y
++òæ F 193:y
++òç F 194:y
++òè F 195:y
++òé F 196:y
++òê F 197:y
++òë F 198:y
++òì F 199:y
++òí F 200:y
++òî F 201:y
++òï F 202:y
++òð F 203:y
++òñ F 204:y
++òò F 205:y
++òó F 206:y
++òô F 207:y
++òõ F 208:y
++òö F 209:y
++ò÷ F 210:y
++òø F 211:y
++òù F 212:y
++òú F 213:y
++òû F 214:y
++òü F 215:y
++òý F 216:y
++òþ F 217:y
++ó¡ F 218:y
++ó¢ F 219:y
++ó£ F 220:y
++ó¤ F 221:y
++ó¥ F 222:y
++ó¦ F 223:y
++ó§ F 224:y
++ó¨ F 225:y
++ó© F 226:y
++óª F 227:y
++ó« F 228:y
++ó¬ F 229:y
++ó F 230:y
++ó® F 231:y
++ó¯ F 232:y
++ó° F 233:y
++ó± F 234:y
++ó² F 235:y
++ó³ F 236:y
++ó´ F 237:y
++óµ F 238:y
++ó¶ F 239:y
++ó· F 240:y
++ó¸ F 241:y
++ó¹ F 242:y
++óº F 243:y
++ó» F 244:y
++ó¼ F 245:y
++ó½ F 246:y
++ó¾ F 247:y
++ó¿ F 248:y
++óÀ F 249:y
++óÁ F 250:y
++óÂ F 251:y
++óÃ F 252:y
++óÄ F 253:y
++óÅ F 254:y
++óÆ F 255:y
++óÇ F 0:z
++óÈ F 1:z
++óÉ F 2:z
++óÊ F 3:z
++óË F 4:z
++óÌ F 5:z
++óÍ F 6:z
++óÎ F 7:z
++óÏ F 8:z
++óÐ F 9:z
++óÑ F 10:z
++óÒ F 11:z
++óÓ F 12:z
++óÔ F 13:z
++óÕ F 14:z
++óÖ F 15:z
++ó× F 16:z
++óØ F 17:z
++óÙ F 18:z
++óÚ F 19:z
++óÛ F 20:z
++óÜ F 21:z
++óÝ F 22:z
++óÞ F 23:z
++óß F 24:z
++óà F 25:z
++óá F 26:z
++óâ F 27:z
++óã F 28:z
++óä F 29:z
++óå F 30:z
++óæ F 31:z
++óç F 32:z
++óè F 33:z
++óé F 34:z
++óê F 35:z
++óë F 36:z
++óì F 37:z
++óí F 38:z
++óî F 39:z
++óï F 40:z
++óð F 41:z
++óñ F 42:z
++óò F 43:z
++óó F 44:z
++óô F 45:z
++óõ F 46:z
++óö F 47:z
++ó÷ F 48:z
++óø F 49:z
++óù F 50:z
++óú F 51:z
++óû F 52:z
++óü F 53:z
++óý F 54:z
++óþ F 55:z
++ô¡ F 56:z
++ô¢ F 57:z
++ô£ F 58:z
++ô¤ F 59:z
+--- groff-1.18.1.1.orig/font/devdvi/DESC.in
++++ groff-1.18.1.1/font/devdvi/DESC.in
+@@ -6,6 +6,10 @@
+ sizes 500-1000000 0
+ styles R I B BI
+ family T
+-fonts 13 0 0 0 0 0 0 0 0 0 MI S EX CW
++fonts 15 0 0 0 0 0 0 0 0 0 MI S EX CW M G
++fontset B G 100..FFFF
++fontset HB G 100..FFFF
++fontset SB G 100..FFFF
++fontset - M 100..FFFF
+ tcommand
+ postpro grodvi
+--- groff-1.18.1.1.orig/font/devdvi/Makefile.sub
++++ groff-1.18.1.1/font/devdvi/Makefile.sub
+@@ -3,15 +3,68 @@
+ TR TI TB TBI CW CWI HR HI HB HBI \
+ TREC TIEC TBEC TBIEC CWEC CWIEC HREC HIEC HBEC HBIEC \
+ TRTC TITC TBTC TBITC CWTC CWITC HRTC HITC HBTC HBITC \
+- MI S EX SA SB \
++ MI S EX SA SB M G \
+ generate/CompileFonts generate/Makefile \
+ generate/msam.map generate/msbm.map \
+ generate/texb.map generate/texex.map generate/texi.map generate/texmi.map \
+ generate/texr.map generate/texsy.map generate/textt.map \
+ generate/ec.map generate/tc.map
+
+-CLEANADD=DESC
++CLEANADD=DESC M G
+
+ DESC: DESC.in
+ cat $(srcdir)/DESC.in >DESC
+ test -z '$(DVIPRINT)' || echo print '$(DVIPRINT)' >>DESC
++
++M: M.proto-$(DVIFORMAT)
++ @echo Making $@
++ @-rm -f $@
++ cp M.proto-$(DVIFORMAT) M
++# @if [ x$(DVIFORMAT) = xNTT ]; then \
++# sed -e 's/ F / 959887,808326,151561 1 /' \
++# -e 's/:0$$/:dmjsy10/' \
++# -e 's/:1$$/:dmjroma10/' \
++# -e 's/:2$$/:dmjhira10/' \
++# -e 's/:3$$/:dmjkata10/' \
++# -e 's/:4$$/:dmjgreek10/' \
++# -e 's/:5$$/:dmjrussian10/' \
++# -e 's/:6$$/:dmjkeisen10/' \
++# -e 's/:a$$/:dmjka10/' \
++# -e 's/:b$$/:dmjkb10/' \
++# -e 's/:c$$/:dmjkc10/' \
++# -e 's/:d$$/:dmjkd10/' \
++# -e 's/:e$$/:dmjke10/' \
++# -e 's/:f$$/:dmjkf10/' \
++# -e 's/:g$$/:dmjkg10/' \
++# -e 's/:h$$/:dmjkh10/' \
++# -e 's/:i$$/:dmjki10/' \
++# -e 's/:j$$/:dmjkj10/' \
++# -e 's/:k$$/:dmjkk10/' \
++# -e 's/:l$$/:dmjkl10/' \
++# -e 's/:m$$/:dmjkm10/' \
++# -e 's/:n$$/:dmjkn10/' \
++# -e 's/:o$$/:dmjko10/' \
++# -e 's/:p$$/:dmjkp10/' \
++# -e 's/:q$$/:dmjkq10/' \
++# -e 's/:r$$/:dmjkr10/' \
++# -e 's/:s$$/:dmjks10/' \
++# -e 's/:t$$/:dmjkt10/' \
++# -e 's/:u$$/:dmjku10/' \
++# -e 's/:v$$/:dmjkv10/' \
++# -e 's/:w$$/:dmjkw10/' \
++# -e 's/:x$$/:dmjkx10/' \
++# -e 's/:y$$/:dmjky10/' \
++# -e 's/:z$$/:dmjkz10/' \
++# < M.proto-NTT > M ;\
++# else \
++# ../devnippon/createM -jis "1006514,815360,145600" 1 < M.proto-ASCII | \
++# sed -f FixMetric.sed > M ;\
++# fi
++
++G: M
++ @echo Making $@
++ @-rm -f $@
++ @sed -e 's/name M/name G/' \
++ -e 's/dmj/dgj/' \
++ -e 's/internalname min10/internalname goth10/' \
++ < M > G
+--- groff-1.18.1.1.orig/font/devdvi/M.proto-ASCII
++++ groff-1.18.1.1/font/devdvi/M.proto-ASCII
+@@ -0,0 +1,4 @@
++name M
++internalname min10
++checksum -375402250
++designsize 10485760
+--- groff-1.18.1.1.orig/font/devdvi/FixMetric.sed
++++ groff-1.18.1.1/font/devdvi/FixMetric.sed
+@@ -0,0 +1,77 @@
++s/1006514,.*0x212b$/370845,815360,145600 1 0x212b/
++s/1006514,.*0x212c$/370845,815360,145600 1 0x212c/
++s/1006514,.*0x2126$/370845,815360,145600 1 0x2126/
++s/1006514,.*0x2127$/370845,815360,145600 1 0x2127/
++s/1006514,.*0x2128$/370845,815360,145600 1 0x2128/
++s/1006514,.*0x212a$/370845,815360,145600 1 0x212a/
++s/1006514,.*0x212d$/370845,815360,145600 1 0x212d/
++s/1006514,.*0x212e$/370845,815360,145600 1 0x212e/
++s/1006514,.*0x213e$/370845,815360,145600 1 0x213e/
++s/1006514,.*0x2142$/370845,815360,145600 1 0x2142/
++s/1006514,.*0x2143$/370845,815360,145600 1 0x2143/
++s/1006514,.*0x2146$/370845,815360,145600 1 0x2146/
++s/1006514,.*0x2147$/370845,815360,145600 1 0x2147/
++s/1006514,.*0x2124$/370845,815360,145600 1 0x2124/
++s/1006514,.*0x2125$/370845,815360,145600 1 0x2125/
++s/1006514,.*0x214b$/528496,815360,145600 1 0x214b/
++s/1006514,.*0x214d$/528496,815360,145600 1 0x214d/
++s/1006514,.*0x214f$/528496,815360,145600 1 0x214f/
++s/1006514,.*0x2151$/528496,815360,145600 1 0x2151/
++s/1006514,.*0x2153$/528496,815360,145600 1 0x2153/
++s/1006514,.*0x2155$/528496,815360,145600 1 0x2155/
++s/1006514,.*0x2157$/528496,815360,145600 1 0x2157/
++s/1006514,.*0x2159$/528496,815360,145600 1 0x2159/
++s/1006514,.*0x215b$/528496,815360,145600 1 0x215b/
++s/1006514,.*0x2129$/528496,815360,145600 1 0x2129/
++s/1006514,.*0x212f$/528496,815360,145600 1 0x212f/
++s/1006514,.*0x2130$/528496,815360,145600 1 0x2130/
++s/1006514,.*0x2133$/528496,815360,145600 1 0x2133/
++s/1006514,.*0x2135$/528496,815360,145600 1 0x2135/
++s/1006514,.*0x2148$/528496,815360,145600 1 0x2148/
++s/1006514,.*0x2149$/528496,815360,145600 1 0x2149/
++s/1006514,.*0x216b$/528496,815360,145600 1 0x216b/
++s/1006514,.*0x216c$/528496,815360,145600 1 0x216c/
++s/1006514,.*0x216d$/528496,815360,145600 1 0x216d/
++s/1006514,.*0x2178$/528496,815360,145600 1 0x2178/
++s/1006514,.*0x214a$/528496,815360,145600 1 0x214a/
++s/1006514,.*0x214c$/528496,815360,145600 1 0x214c/
++s/1006514,.*0x214e$/528496,815360,145600 1 0x214e/
++s/1006514,.*0x2150$/528496,815360,145600 1 0x2150/
++s/1006514,.*0x2152$/528496,815360,145600 1 0x2152/
++s/1006514,.*0x2154$/528496,815360,145600 1 0x2154/
++s/1006514,.*0x2156$/528496,815360,145600 1 0x2156/
++s/1006514,.*0x2158$/528496,815360,145600 1 0x2158/
++s/1006514,.*0x215a$/528496,815360,145600 1 0x215a/
++s/1006514,.*0x2122$/528496,815360,145600 1 0x2122/
++s/1006514,.*0x2123$/528496,815360,145600 1 0x2123/
++s/1006514,.*0x2136$/783741,815360,145600 1 0x2136/
++s/1006514,.*0x2137$/783741,815360,145600 1 0x2137/
++s/1006514,.*0x2139$/783741,815360,145600 1 0x2139/
++s/1006514,.*0x2168$/783741,815360,145600 1 0x2168/
++s/1006514,.*0x2169$/783741,815360,145600 1 0x2169/
++s/1006514,.*0x216a$/783741,815360,145600 1 0x216a/
++s/1006514,.*0x2170$/783741,815360,145600 1 0x2170/
++s/1006514,.*0x2171$/783741,815360,145600 1 0x2171/
++s/1006514,.*0x2172$/783741,815360,145600 1 0x2172/
++s/1006514,.*0x2421$/783741,815360,145600 1 0x2421/
++s/1006514,.*0x2423$/783741,815360,145600 1 0x2423/
++s/1006514,.*0x2425$/783741,815360,145600 1 0x2425/
++s/1006514,.*0x2427$/783741,815360,145600 1 0x2427/
++s/1006514,.*0x2429$/783741,815360,145600 1 0x2429/
++s/1006514,.*0x2443$/783741,815360,145600 1 0x2443/
++s/1006514,.*0x2463$/783741,815360,145600 1 0x2463/
++s/1006514,.*0x2465$/783741,815360,145600 1 0x2465/
++s/1006514,.*0x2467$/783741,815360,145600 1 0x2467/
++s/1006514,.*0x246e$/783741,815360,145600 1 0x246e/
++s/1006514,.*0x2521$/783741,815360,145600 1 0x2521/
++s/1006514,.*0x2523$/783741,815360,145600 1 0x2523/
++s/1006514,.*0x2525$/783741,815360,145600 1 0x2525/
++s/1006514,.*0x2527$/783741,815360,145600 1 0x2527/
++s/1006514,.*0x2529$/783741,815360,145600 1 0x2529/
++s/1006514,.*0x2543$/783741,815360,145600 1 0x2543/
++s/1006514,.*0x2563$/783741,815360,145600 1 0x2563/
++s/1006514,.*0x2565$/783741,815360,145600 1 0x2565/
++s/1006514,.*0x2567$/783741,815360,145600 1 0x2567/
++s/1006514,.*0x256e$/783741,815360,145600 1 0x256e/
++s/1006514,.*0x2575$/783741,815360,145600 1 0x2575/
++s/1006514,.*0x2576$/783741,815360,145600 1 0x2576/
+--- groff-1.18.1.1.orig/ChangeLog.jp
++++ groff-1.18.1.1/ChangeLog.jp
+@@ -0,0 +1,345 @@
++2002-11-04 Fumitoshi UKAI <ukai@debian.or.jp>
++
++ * src/libs/libgroff/encoding.cc: for C or POSIX locale,
++ use ascii8 encoding handler
++ * font/devX*: new font desc for M, G
++ * src/xditview: support ENABLE_MULTIBYTE (Japanese only?)
++
++2002-10-09 Fumitoshi UKAI <ukai@debian.or.jp>
++
++ * update groff-1.18-7
++
++2002-09-23 Fumitoshi UKAI <ukai@debian.or.jp>
++
++ * src/roff/troff/input.cc: fix bug in wchar_charinfo()
++ check u<CODE> where <CODE> is 4- HEX chars
++ * src/device/grohtml/post-html.cc: works ENABLE_MULTIBYTE
++ * font/devhtml: add font M, G for Japanese
++
++2002-09-22 Fumitoshi UKAI <ukai@debian.or.jp>
++
++ * new multibyte patch
++
++2001-08-16 Fumitoshi UKAI <ukai@debian.or.jp>
++
++ * tmac/euc-jp.tmac:
++ fix disappearing `-' char
++
++2001-07-21 Fumitoshi UKAI <ukai@debian.or.jp>
++
++ * add ENABLE_MULTIBYTE support to src/xditview
++
++2001-07-20 Fumitoshi UKAI <ukai@debian.or.jp>
++
++ * introduce "fontset" in font/*/DESC
++ obsoletes "ondemand"
++
++2001-07-19 Fumitoshi UKAI <ukai@debian.or.jp>
++
++ * don't use input_encoding->is_wchar_code()
++ * fix troffrc empty line
++ * fix duplicate strcasecmp()
++
++2001-07-19 Fumitoshi UKAI <ukai@debian.or.jp>
++
++ * sub font selection move into environment::add_char()
++ it makes possible to use \[uni<code>]
++
++2001-07-19 Fumitoshi UKAI <ukai@debian.or.jp>
++
++ * use generic iconv_handler instead of euc_handler
++ * internal code now uses UCS-2
++
++2001-07-19 Fumitoshi UKAI <ukai@debian.or.jp
++
++ * wchar%x -> uni%X
++ - still no code conversion
++ - font description is not accurate
++ * change "fixed" to charset range
++
++2001-07-18 Fumitoshi UKAI <ukai@debian.or.jp>
++
++ * Configuration Change:
++ obsolete: --enable-japanese (#ifdef NIPPON)
++ new: --enable-multibyte (#ifdef ENABLE_MULTIBYTE)
++
++2001-07-18 Fumitoshi UKAI <ukai@debian.or.jp>
++
++ * create charinfo for wchar on demand (src/roff/troff/input.cc)
++ * use "fixed" for font wchar metric (src/libs/libgroff/font.cc)
++ - font/*/M,G
++
++2001-07-17 Fumitoshi UKAI <ukai@debian.or.jp>
++
++ * add utf8 encoding handler to src/libs/libgroff/encoding.cc
++ (this utf8 encodig handler is too slow!)
++
++2001-07-15 Fumitoshi UKAI <ukai@debian.or.jp>
++
++ * based on groff 1.17.2-1
++ * use src/include/encoding.h instead of eucmac.h
++ * introduce src/libs/libgroff/encoding.cc
++ * introduce tmac/euc-jp.tmac for EUC-JP documents
++
++2001-05-24 Fumitoshi UKAI <ukai@debian.or.jp>
++
++ * Apply for groff-1.17
++
++2000-01-06 Yoshiaki Yanagihara <yochi@debian.or.jp>
++
++ * Apply japanese patch "jgroff-0.101"
++ (thanks hanataka@abyss.rim.or.jp).
++ * Added japanese extention option at configure.in, aclocal.m4.
++
++Sat Jan 1 17:10:32 JST 2000 HANATAKA Shinya <hanataka@abyss.rim.or.jp>
++
++ * jgroff-0.100 ¤ò¤½¤Î¤Þ¤Þ groff-1.14 ¤ËŬÍѤ·¤Æ jgroff-101
++ ¤È¤·¤¿¡£
++ * grohtml ¤òÆüËܸì¤ËÂбþ¤µ¤»¤ë¡£
++ * ÆüËܸì¥Þ¥Ë¥å¥¢¥ëÍÑ¤Ë tmac.docj ¤È tmac.andocj ¥Þ¥¯¥í¤òÄɲá£
++
++Sun Mar 15 18:23:12 1998 Yoshiaki Yanagihara <yochi@debian.or.jp>
++
++ * jgroff ¤Î¥Ù¡¼¥¹¤ò groff-1.11a ¤ËÊѹ¹¤·¡¢jgroff-0.99¥Ñ¥Ã¥Á¤ò
++ ŬÍѤ·¤¿¤â¤Î¤ò jgroff-0.100 ¤È¤·¤¿¡£
++ ´ðËÜŪ¤Ë jgroff-0.99 ¤Èµ¡Ç½¤ÏƱ¤¸ *¤Ï¤º*¡£
++
++Fri Dec 22 11:47:46 1995 Kitagawa Toshiyuki <tm-kita@kh.rim.or.jp>
++
++ * ¥Ð¡¼¥¸¥ç¥ó0.99¡£
++
++Mon Dec 18 18:28:37 1995 Kitagawa Toshiyuki <tm-kita@kh.rim.or.jp>
++
++ * tmac/Makefile.sub: ¥¿¡¼¥²¥Ã¥È stamp-wrap¡¢uninstall_sub ¤¬°ìÉô
++ OS¤Îsh¤Ç¹½Ê¸¥¨¥é¡¼¤È¤Ê¤ë¥ª¥ê¥¸¥Ê¥ë¥Ð¥°¤ò½¤Àµ¡£
++
++Wed Dec 13 15:09:26 1995 Kitagawa Toshiyuki <tm-kita@kh.rim.or.jp>
++
++ * jgroff.sh: ¥ª¥ê¥¸¥Ê¥ë¤Ç¥¤¥ó¥¹¥È¡¼¥ë¥Ñ¥¹¤¬Êѹ¹¤µ¤ì¤¿¤Î¤Ë¹ç¤ï¤»¡¢
++ GROFF_TMAC_PATH¡¢GROFF_FONT_PATH¤òshare/groffÇÛ²¼¤ËÊѹ¹¡£
++
++Sat Dec 9 15:28:36 1995 Kitagawa Toshiyuki <tm-kita@kh.rim.or.jp>
++
++ * wchar.h¤«¤éeucmac.h¤Ë¥Õ¥¡¥¤¥ë̾¤òÊѹ¹¡£
++
++Fri Dec 8 12:15:47 1995 Yoshio Takaeda <shio@yinyan.bekkoame.or.jp>
++
++ * troff/env.cc(add_char): ¡ØASCIIʸ»ú + ²þ¹Ô¥³¡¼¥É + EUCʸ»ú¡Ù¤È¤¤¤¦
++ ¥Ñ¥¿¡¼¥ó¤Î»þ¡¢²þ¹Ô¥³¡¼¥É¤¬¥¹¥Ú¡¼¥¹¤ËÊÑ´¹¤µ¤ì¤Ê¤¤¥Ð¥°¤ò½¤Àµ¡£
++
++Thu Dec 7 21:35:06 1995 Yanagihara Yoshiaki <yosiaki@bsd2.kbnes.nec.co.jp>
++
++ * troff/input.cc (process_input_stack): gcc-2.7.0¤ÇÊÑ¿ôÄêµÁ¤¬¥¹¥³¡¼¥×
++ °ãÈ¿¤È¤Ê¤Ã¤Æ¤·¤Þ¤¦²Õ½ê¤ò½¤Àµ¡£
++
++Thu Dec 7 21:35:06 1995 Yanagihara Yoshiaki <yosiaki@bsd2.kbnes.nec.co.jp>
++
++ * jgroff¤Î¥Ù¡¼¥¹¥½¡¼¥¹¤ògroff-1.10¤ËÊѹ¹¡£
++
++Thu Apr 6 16:56:32 1995 Kitagawa Toshiyuki <kitagawa@bsd2.kbnes.nec.co.jp>
++
++ * devdvi/M.proto-NTT: DNP¤Îpk¥Õ¥©¥ó¥È¤Î¥Á¥§¥Ã¥¯¥µ¥àÃͤ¬0¤Ê¤Î¤Ç¡¢¤³
++ ¤ì¤Ë¹ç¤ï¤»¤Æchecksum¤ÎÃͤò0¤ËÊѹ¹¡£
++
++Mon Apr 3 20:36:37 1995 Kitagawa Toshiyuki <kitagawa@bsd2.kbnes.nec.co.jp>
++
++ * troff/env.cc (possibly_break_line):
++ line¥ê¥¹¥ÈÃæ¤Îkword_space_node¤òÄ´À°¤¹¤ë½èÍý¤Ç¡¢lineÃæ¤Ë¤³¤Î¥Î¡¼¥É
++ ¤¬´Þ¤Þ¤ì¤Æ¤¤¤Ê¤¤¾ì¹ç¤Ï½èÍý¤ò¥¹¥¥Ã¥×¤¹¤ë¤è¤¦¤Ë¤·¤¿(EUC¥³¡¼¥É¤ò´Þ¤Þ
++ ¤Ê¤¤roff¤ò½èÍý¤¹¤ë¾ì¹ç¤Ë¤Ïkword_space_node¤Ï¸½¤ì¤Ê¤¤¤Î¤Ç½èÍý¤¬¹â®
++ ²½¤µ¤ì¤ë)¡£
++
++Mon Apr 3 20:36:37 1995 Kitagawa Toshiyuki <kitagawa@bsd2.kbnes.nec.co.jp>
++
++ * troff/env.cc (add_char): hwkern¡¢vlower¤Î½é´ü²½¤Ïdevice½é´ü²½¸å
++ ¤Ë°ìÅÙ¤À¤±¹Ô¤¨¤ÐÎɤ¤¤Î¤Çenvironment¥¯¥é¥¹¤Î¥³¥ó¥¹¥È¥é¥¯¥¿¤Ç¤³¤ì¤ò
++ ¹Ô¤¦¤è¤¦¤ËÊѹ¹¡£
++
++Sat Apr 1 17:57:23 1995 Kitagawa Toshiyuki <kitagawa@bsd2.kbnes.nec.co.jp>
++
++ * troff/input.cc (mount_on_demand): on demand¤Ç¥Þ¥¦¥ó¥È¤µ¤ì¤ë¥Õ¥©
++ ¥ó¥È̾¤ò¥Ç¥Ð¥¤¥¹¤´¤È¤ÎDESC¥Õ¥¡¥¤¥ë¤Ç»ØÄê¤Ç¤¤ë¤è¤¦¤ËÊѹ¹¡£
++ ¥Ç¥£¥ì¥¯¥Æ¥£¥Öondemand¤Ç»ØÄꤷ¤¿¥Õ¥©¥ó¥È¤¬on demand¤Ç¥Þ¥¦¥ó¥È¤µ¤ì¤ë¡£
++
++Fri Mar 31 20:23:43 1995 Kitagawa Toshiyuki <kitagawa@bsd2.kbnes.nec.co.jp>
++
++ * libgroff/font.cc (load): ´Á»ú¥Õ¥©¥ó¥È¥Õ¥¡¥¤¥ëÍѤ˥ǥ£¥ì¥¯¥Æ¥£¥Ö
++ fixedkanji¤òÄɲᣤ³¤ì¤Ï³Æʸ»ú¤Î¥á¥È¥ê¥Ã¥¯¤¬Á´¤ÆƱ¤¸¤Ç¤¢¤ë»ö¤ò»ØÄê
++ ¤¹¤ë¤â¤Î¤Ç¡¢fixedkanji¤¬»ØÄꤵ¤ì¤Æ¤¤¤ë¾ì¹ç¤Ïcharset¤Ïɾ²Á¤µ¤ì¤Ê¤¤
++ ¤¿¤á´Á»ú¥Õ¥©¥ó¥È¤Î¥í¡¼¥É¤¬Â®¤¤¡£
++
++Thu Mar 30 18:20:24 1995 Kitagawa Toshiyuki <kitagawa@bsd2.kbnes.nec.co.jp>
++
++ * troff: node¼±Ê̤òʸ»úÎóÈæ³Ó¤Ç¹Ô¤Ã¤Æ¤¤¤¿¤¬¹â®²½¤Î¤¿¤á¿ôÃÍÈæ³Ó¤Ë
++ Êѹ¹¤·¤¿¡£
++
++Wed Mar 29 20:20:49 1995 Kitagawa Toshiyuki <kitagawa@bsd2.kbnes.nec.co.jp>
++
++ * troff/input.cc: ´Á»ú¥Õ¥©¥ó¥È(M¤ÈG)¤òon demand¤Ç¥Þ¥¦¥ó¥È¤¹¤ë¤è¤¦
++ ¤ËÊѹ¹¡£¤³¤ì¤Ë¤è¤Ã¤Æ´Á»ú¤ò´Þ¤Þ¤Ê¤¤roff¥Õ¥¡¥¤¥ë¤Î½èÍý»þ´Ö¤¬¹â®²½¤µ
++ ¤ì¤¿¡£
++
++Fri Mar 10 15:34:26 1995 Shigeki Yoshida <shige@theta.iis.u-tokyo.ac.jp>
++
++ * troff/input.cc (process): geqn¤Ç¡¢
++
++ .EQ
++ Í×ÁÇ sub µ¹æ
++ .EN
++
++ ¤ò½èÍý¤¹¤ë¤È¡¢"illegal token in argument to \Z"¤È¤Ê¤Ã¤Æ¤·¤Þ¤¦¥Ð¥°
++ (\Z¥·¡¼¥±¥ó¥¹¤Î°ú¿ô¤ËEUCʸ»ú¤¬Í褿¾ì¹ç¤ÎÂбþϳ¤ì)¤ò½¤Àµ¡£
++
++Mon Feb 6 11:22:33 1995 Yoshio Takaeda <e50110@sakura.kudpc.kyoto-u.ac.jp>
++
++ * troff/input.cc: ¹ÔƬ¶Ø§ʸ»ú¤ÎEUC¥³¡¼¥É¤Î°ìÉô¤¬ÉÔÀµ¡£
++
++Mon Jan 30 14:02:54 1995 Kitagawa Toshiyuki <kitagawa@bsd2.kbnes.nec.co.jp>
++
++ * ¥Ð¡¼¥¸¥ç¥ó0.97¡£
++
++Fri Dec 10 14:26:14 1994 Kazutaka YOKOTA <yokota@zodiac.mech.utsunomiya-u.ac.jp>
++
++ * devdvi/M.proto: NTT JTeX¤ÈASCIIÆüËܸìTeXξÊý¤Îdvi¥Õ¥¡¥¤¥ë¤ò°·¤¨¤ë¤è¤¦
++ M.proto¥Õ¥¡¥¤¥ë¤òÊѹ¹¡£
++
++Fri Dec 9 14:26:14 1994 Kazutaka YOKOTA <yokota@zodiac.mech.utsunomiya-u.ac.jp>
++
++ * troff/node.cc: boldfont_list[]¤Ë¥Õ¥©¥ó¥È̾ B ¤òÅÐÏ¿¤·¤Æ¤¤¤Ê¤«¤Ã
++ ¤¿¤¿¤á¡¢dvi¥Õ¥¡¥¤¥ë¤Ë¥´¥·¥Ã¥¯ÂΤ¬½ÐÎϤµ¤ì¤Æ¤¤¤Ê¤«¤Ã¤¿¡£
++
++Fri Dec 9 14:23:22 1994 Kazutaka YOKOTA <yokota@zodiac.mech.utsunomiya-u.ac.jp>
++
++ * grotty/tty.cc (add_char): EUCʸ»ú¤ËÂФ·¤ÆWCHAR_MODE¤òÀßÄꤷ¤Æ¤¤
++ ¤Ê¤«¤Ã¤¿¤¿¤á¡¢tty½ÐÎϤǥ´¥·¥Ã¥¯ÂΤ¬Æó½ÅÂǤÁ¤µ¤ì¤Æ¤¤¤Ê¤«¤Ã¤¿¡£
++
++Fri Dec 9 14:19:33 1994 Kazutaka YOKOTA <yokota@zodiac.mech.utsunomiya-u.ac.jp>
++
++ * devdvi/Makefile.sub: ¥Õ¥©¥ó¥È¥Õ¥¡¥¤¥ë G ¤Ç¡¢name¥Ç¥£¥ì¥¯¥Æ¥£¥Ö¤¬
++ `name M'¤Ë¤Ê¤Ã¤Æ¤¤¤ë¡£
++
++Wed Nov 30 13:24:54 1994 Kitagawa Toshiyuki <kitagawa@bsd2.kbnes.nec.co.jp>
++
++ * ¥Ð¡¼¥¸¥ç¥ó0.96¡£
++
++ * grodvi/dvi.cc: FreeBSD 1.1.5R¤Îstrcmp(3)¤Ç¤Ï°ú¿ô¤Ë¥Ì¥ë¥Ý¥¤¥ó¥¿¤ò
++ ÅϤ¹¤È¥³¥¢¥À¥ó¥×¤·¤Æ¤·¤Þ¤¦¤Î¤Ç¡¢¤³¤ì¤ò²óÈò¤¹¤ë¥³¡¼¥É¤òÄɲä·¤¿¡£
++
++Tue Nov 29 13:52:54 1994 Kitagawa Toshiyuki <kitagawa@bsd2.kbnes.nec.co.jp>
++
++ * troff/input.cc: EUC¤Î¥¹¥Ú¡¼¥¹Ê¸»ú(0xa1a1)¤ÏASCII¤Î¥¹¥Ú¡¼¥¹Ê¸»ú¤È
++ ¤·¤Æ½èÍý¤¹¤ë¤è¤¦½¤Àµ¡£
++
++ * devnippon/createM: JISX0208¤Ë¤ª¤¤¤Æʸ»ú¤¬Ì¤ÄêµÁ¤ÎÉôʬ¤Ë¤Ä¤¤¤Æ¤Ï
++ ¥Õ¥©¥ó¥È¥Õ¥¡¥¤¥ë¤Ë½ÐÎϤ·¤Ê¤¤¤è¤¦½¤Àµ¡£
++
++Mon Nov 28 18:15:31 1994 Kitagawa Toshiyuki <kitagawa@bsd2.kbnes.nec.co.jp>
++
++ * grodvi/dvi.cc: grodvi¤òÆüËܸ첽¤·¤¿¡£
++
++Fri Nov 25 15:39:05 1994 Kitagawa Toshiyuki <kitagawa@bsd2.kbnes.nec.co.jp>
++
++ * troff/env.cc: EUCʸ»ú¤Ç»Ï¤Þ¤ë¹Ô¤ËÂФ·¤Æ¶ÑÅù³ä¤êÉÕ¤±¤¬¹Ô¤ï¤ì¤¿¾ì
++ ¹ç¡¢¹ÔƬ¤Ë;ʬ¤Ê¶õÇò¤¬Æþ¤ë»ö¤¬¤¢¤Ã¤¿¤Î¤Ç¤³¤ì¤ò½¤Àµ¤·¤¿¡£
++
++Fri Nov 18 20:19:55 1994 Masubuchi Toshimichi <tmasu@st.rim.or.jp>
++
++ * devnippon/createM.c: createM¤Î½ªÎ»¥¹¥Æ¡¼¥¿¥¹¤¬ÉÔÄê¤Ë¤Ê¤ë¤¿¤á¡¢
++ make¤¬½ªÎ»¤·¤Æ¤·¤Þ¤¦¡£createM¤Î½ªÎ»¥¹¥Æ¡¼¥¿¥¹¤¬0¤Ë¤Ê¤ë¤è¤¦½¤Àµ¡£
++
++ * devnippon/Makefile.sub: PATH´Ä¶ÊÑ¿ô¤Ë¥«¥ì¥ó¥È¥Ç¥£¥ì¥¯¥È¥ê¤¬´Þ¤Þ
++ ¤ì¤Æ¤¤¤Ê¤¤¾ì¹ç¡¢devnippon/M¤òmake¤¹¤ë»þÅÀ¤ÇcreateM¤¬¸«¤Ä¤«¤é¤ºmake
++ ¥¨¥é¡¼¤Ë¤Ê¤ë¥Ð¥°¤ò½¤Àµ¡£
++
++Thu Nov 17 17:11:26 1994 Kitagawa Toshiyuki <kitagawa@bsd2.kbnes.nec.co.jp>
++
++ * devnippon/createM.c: gets()¤òfgets()¤ËÊѹ¹¡£
++
++Sat Nov 12 13:38:19 1994 Kitagawa Toshiyuki <kitagawa@bsd2.kbnes.nec.co.jp>
++
++ * ¥Ð¡¼¥¸¥ç¥ó0.95¡£
++
++ * troff/env.cc: .stt ¥ê¥¯¥¨¥¹¥È¤òÄɲÃ(¥í¡¼¥«¥ë¤Ê¥Þ¥Ë¥å¥¢¥ë½ñ¼°¤Ë¹ç
++ ¤ï¤»¤ë¤¿¤á -> ¤³¤Î¥ê¥¯¥¨¥¹¥È¤ÏÈó¸ø³«)¡£
++
++ * troff/input.cc (init_charset_table): ASCII¤Î¹ÔƬ¶Ø§ʸ»ú¤È¤·¤Æ
++ ,:;>}¤òÄɲä·¤¿¡£
++
++ * EUC¥Õ¥©¥ó¥È¥Õ¥¡¥¤¥ë¤Ï¡¢make»þ¤Ë¥Ä¡¼¥ë¤Ë¤è¤Ã¤ÆÀ¸À®¤¹¤ë¤è¤¦Êѹ¹¡£
++ ¤³¤ì¤Ë¤è¤êpatch¥µ¥¤¥º¤¬¤«¤Ê¤ê¾®¤µ¤¯¤Ê¤Ã¤¿¡£
++
++Fri Nov 11 20:53:00 1994 Kitagawa Toshiyuki <kitagawa@bsd2.kbnes.nec.co.jp>
++
++ * troff/env.cc (add_char): <EUCʸ»ú> + <ASCIIʸ»ú>¤Î¾ì¹ç¡¢´Ö¤ËÆþ¤ì
++ ¤ë¶õÇò¤Ï¶Ø§¤Ë°ãÈ¿¤·¤Ê¤¤¤«¤®¤ê¥Ö¥ì¡¼¥¯²Äǽ¤Ê¶õÇò¤¬Æþ¤ë¤è¤¦½¤Àµ¤·¤¿¡£
++
++
++Tue Oct 25 04:46:09 1994 Kitagawa Toshiyuki (kitagawa@bsd2.kbnes.nec.co.jp)
++
++ * ¥Ð¡¼¥¸¥ç¥ó0.94¡£
++
++ * libdriver/input.cc (do_file): -Tlatin1¤ÇEUC¤Ç¤Ï¤Ê¤¤Ê¸»ú¥³¡¼¥É¤ò
++ EUC¤ÈȽÃǤ·¤Æ¤·¤Þ¤¦¥Ð¥°¤ò½¤Àµ¡£
++
++Mon Oct 24 07:16:19 1994 Kitagawa Toshiyuki (kitagawa@bsd2.kbnes.nec.co.jp)
++
++ * troff/node.cc (is_boldfont): FreeBSD 1.1.5¤Ç¡¢¥¼¥íÈÖÃÏ»²¾È¤Î¤¿¤á¥³
++ ¥¢¥À¥ó¥×¤¹¤ë¥Ð¥°¤ò½¤Àµ¡£
++
++ * indxbib/dirnamemax.c: FreeBSD 1.1.5¤Ïpathconf()¤ò»ý¤Ã¤Æ¤¤¤Ê¤¤¤Î¤Ç
++ _POSIX_VERSION¤òundef¤·¤¿¡£
++
++ * ¥Ð¡¼¥¸¥ç¥ó0.93¡£
++
++ * geqn¤òÆüËܸ첽¤·¤¿¡£
++
++ * devps/DESC¤Îwcharkern¤òÀßÄꤹ¤ë¤È¹ÔƬ¤Ë¶õÇò¤¬Æþ¤Ã¤Æ¤·¤Þ¤¦¥Ð¥°¤Î
++ ½¤ÀµÊýË¡¤òÊѹ¹¡£
++
++Sat Oct 22 08:19:15 1994 Kitagawa Toshiyuki (kitagawa@bsd2.kbnes.nec.co.jp)
++
++ * ¥Ð¡¼¥¸¥ç¥ó0.90¡£
++
++ * xtotroff¤òÆüËܸ첽¡£
++
++Fri Oct 21 05:33:02 1994 Kitagawa Toshiyuki (kitagawa@bsd2.kbnes.nec.co.jp)
++
++ * devps/DESC¤Îwcharkern¤òÀßÄꤹ¤ë¤È¹ÔƬ¤Ë¶õÇò¤¬Æþ¤Ã¤Æ¤·¤Þ¤¦»ö¤¬¤¢
++ ¤Ã¤¿¤Î¤Ç¡¢¤³¤ì¤ò½¤Àµ¡£
++
++ * pre-release¥Ð¡¼¥¸¥ç¥ó¡£
++
++ * gxditview¤òÆüËܸ첽¤·¤¿(¥Õ¥©¥ó¥È¥á¥È¥ê¥Ã¥¯¤Î¼è¤ê½Ð¤·¤¬¤¤¤¤²Ã¸º)¡£
++
++Thu Oct 20 05:23:09 1994 Kitagawa Toshiyuki (kitagawa@bsd2.kbnes.nec.co.jp)
++
++ * ¥Õ¥©¥ó¥ÈÈÖ¹æ3¤Ë¥Ü¡¼¥ë¥ÉÂΰʳ°¤Î¥Õ¥©¥ó¥È¤ò¥Þ¥¦¥ó¥È¤·¤¿¾ì¹ç¡¢´Á»ú¥Õ¥©
++ ¥ó¥È¤¬¥´¥·¥Ã¥¯ÂΤˤʤäƤ·¤Þ¤¦¥Ð¥°¤ò½¤Àµ¡£
++
++Wed Oct 19 06:48:55 1994 Kitagawa Toshiyuki (kitagawa@bsd2.kbnes.nec.co.jp)
++
++ * beta¥Ð¡¼¥¸¥ç¥ó¡£
++
++Tue Oct 18 05:02:59 1994 Kitagawa Toshiyuki (kitagawa@bsd2.kbnes.nec.co.jp)
++
++ * pic:
++ gpic¤òÆüËܸìÂбþ¤·¤¿¡£
++
++ * tbl:
++ gtbl¤òÆüËܸìÂбþ¤·¤¿¡£
++
++ * troff/troff:
++ Times-Bold°Ê³°¤Î¥Ü¡¼¥ë¥ÉÂΤ¬¥«¥ì¥ó¥È¥Õ¥©¥ó¥È¤Î»þ¡¢´Á»ú¥Õ¥©¥ó¥È¤¬¥´
++ ¥·¥Ã¥¯¤ËÀÚ¤êÂؤï¤é¤Ê¤¤¥Ð¥°¤ò½¤Àµ¡£
++
++ * troff/troff:
++ DESC¤Ë¥Ç¥£¥ì¥¯¥Æ¥£¥Öwcharkern¤òÄɲä·¡¢ASCIIʸ»ú¤ÈEUCʸ»ú¤Î´Ö¤Ë¡¢
++ »ØÄꤷ¤¿unit¿ô¤À¤±breakÉÔ²Äǽ¤Ê¶õÇò¤òÆþ¤ì¤ë¤è¤¦¤Ë¤·¤¿¡£
++
++ * troff/troff:
++ DESC¤Ë¥Ç¥£¥ì¥¯¥Æ¥£¥Ölowerwchar¤òÄɲä·¡¢ASCIIʸ»ú¤ËÂФ·¤ÆEUCʸ»ú¤ò¡¢
++ »ØÄꤷ¤¿unit¿ô¤À¤±²¼¤²¤ë¤è¤¦¤Ë¤·¤¿(ASCIIʸ»ú¤¬Íî¤Á¹þ¤ó¤Ç¸«¤¨¤ë¤¿¤á)¡£
++
++Fri Oct 14 08:29:06 1994 Kitagawa Toshiyuki (kitagawa@bsd2.kbnes.nec.co.jp)
++
++ * aplah¥Ð¡¼¥¸¥ç¥ó¡£
+--- groff-1.18.1.1.orig/tmac/troffrc
++++ groff-1.18.1.1/tmac/troffrc
+@@ -13,7 +13,9 @@
+ .do ds troffrc!X100 X.tmac
+ .do ds troffrc!X100-12 X.tmac
+ .do ds troffrc!ascii tty.tmac
++.do ds troffrc!ascii8 tty.tmac
+ .do ds troffrc!latin1 tty.tmac
++.do ds troffrc!nippon tty.tmac
+ .do ds troffrc!utf8 tty.tmac
+ .do ds troffrc!cp1047 tty.tmac
+ .do ds troffrc!lj4 lj4.tmac
+@@ -36,4 +38,13 @@
+ .\" Load hyphenation patterns from `hyphen.us' (in the tmac directory).
+ .do hpf hyphen.us
+ .
++.\" For CJK hack. The hardcoded list of locales is especially nasty, but
++.\" getting the locale charmap requires a troff extension.
++.ie "\V[LANG]"ja_JP.eucJP" .do mso euc-jp.tmac
++.el .ie "\V[LANG]"zh_CN" .do mso gb.tmac
++.el .ie "\V[LANG]"zh_CN.GBK" .do mso gb.tmac
++.el .ie "\V[LANG]"zh_SG" .do mso gb.tmac
++.el .ie "\V[LANG]"zh_SG.GBK" .do mso gb.tmac
++.el .if "\V[LANG]"zh_TW" .do mso big5.tmac
++.
+ .\" Don't let blank lines creep in here.
+--- groff-1.18.1.1.orig/tmac/docj-nroff
++++ groff-1.18.1.1/tmac/docj-nroff
+@@ -0,0 +1,247 @@
++.\" Copyright (c) 1991 The Regents of the University of California.
++.\" All rights reserved.
++.\"
++.\" Redistribution and use in source and binary forms, with or without
++.\" modification, are permitted provided that the following conditions
++.\" are met:
++.\" 1. Redistributions of source code must retain the above copyright
++.\" notice, this list of conditions and the following disclaimer.
++.\" 2. Redistributions in binary form must reproduce the above copyright
++.\" notice, this list of conditions and the following disclaimer in the
++.\" documentation and/or other materials provided with the distribution.
++.\" 3. All advertising materials mentioning features or use of this software
++.\" must display the following acknowledgement:
++.\" This product includes software developed by the University of
++.\" California, Berkeley and its contributors.
++.\" 4. Neither the name of the University nor the names of its contributors
++.\" may be used to endorse or promote products derived from this software
++.\" without specific prior written permission.
++.\"
++.\" THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
++.\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
++.\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
++.\" ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
++.\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
++.\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
++.\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
++.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
++.\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
++.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
++.\" SUCH DAMAGE.
++.\"
++.\" @(#)doc-nroff 5.6 (Berkeley) 8/5/91
++.\"
++.\" tmac.mdoc-nroff
++.ds aD \fI
++.ds aR \fI
++.ds cM \fB
++.ds dF \fR
++.ds eM \fI
++.ds eR \fR
++.ds eV \fR
++.ds fA \fI
++.ds fD \fB
++.ds fL \fB
++.ds fN \fB
++.ds fP \fP
++.ds fS
++.ds fT \fI
++.ds Hs \fR
++.ds iC \fB
++.ds lI \fR
++.ds lP \fR\|(\fP
++.ds rP \fR\|)\fP
++.ds lp \fR\|(\fP
++.ds rp \fR\|)\fP
++.ds lB \fR\|[\|\fP
++.ds rB \fR\|]\fP
++.ds mL \fB
++.ds nM \fB
++.ds nO \fR
++.ds pA \fI
++.ds Pu {\ .\ ,\ ;\ :\ (\ )\ [\ ]}
++.ds rA \fR
++.ds rT \fI
++.ds sH \fB
++.ds sP
++.ds sY \fB
++.ds sX \fI
++.ds tF \fR
++.ds tN
++.ds vA \fI
++.ds Vs \fR
++.ds vT \fB
++.ds xR \fR
++.nr sI .5i
++.nr Ti .5i
++.nr cR 1
++.nr Pp 1v
++.ds lS \0\0
++.nr lS \w'\0\0'u
++.nr dI 6n
++.de pL
++.ie \\n(cR .nr Hm 0
++.el .nr Hm .5i
++.nr Fm .5i
++.nr ll 78n
++.ll 78n
++.nr lt 78n
++.lt 78n
++.nr po 0i
++.po 0i
++.nr dV 1v
++.ad l
++.na
++..
++.ds <= \&<\&=
++.ds >= \&>\&=
++.ds Rq ''
++.ds Lq ``
++.ds ua ^
++.ds aa \'
++.ds ga \`
++.ds sL `
++.ds sR '
++.ds q \&"
++.ds Pi pi
++.ds Ne !=
++.ds Le <=
++.ds Ge >=
++.ds Lt <
++.ds Gt >
++.ds Pm +-
++.ds If infinity
++.ds Na \fINaN\fP
++.ds Ba \fR\&|\fP
++
++.de hK
++.nr % 1
++.ds hT \\*(dT
++.if !"\\*(cH"Null" \{\
++. ie !"\\*(gP"Null" .as hT \|(\|\\*(cH\\*(gP\|)
++. el .as hT \\|(\\|\\*(cH\\|)
++.\}
++.if "\\*(cH"Null" .if !"\\*(gP"Null" .as hT \&\|(\|\\*(gP\|)
++.ie \\n(cR \{\
++. hM
++. wh -1v fM
++.\}
++.el \{\
++. wh 0 hM
++. wh -1.167i fM
++.\}
++.if \\n(nl==0:\\n(nl==-1 'bp
++.em lM
++..
++.nr fW \w'0'
++.de sW
++.nr sW \w\a\\$1\a
++.ie \\n(sW>=\\n(fW \{\
++. ie \\n(sW%\\n(fW .nr sW (\\n(sW/\\n(fW)+1
++. el .nr sW \\n(sW/\\n(fW
++.\}
++.el .nr sW 0
++..
++.de aW
++.nr sW \w\a\\*(A\\$1\a
++.ie \\n(sW>=\\n(fW \{\
++. ie \\n(sW%\\n(fW .nr sW (\\n(sW/\\n(fW)+1
++. el .nr sW \\n(sW/\\n(fW
++.\}
++.el .nr sW 0
++..
++.de Ql
++.if \\n(aC==0 \{\
++. ds mN Ql
++. ds A1 \\$1
++. ds A2 \\$2
++. ds A3 \\$3
++. ds A4 \\$4
++. ds A5 \\$5
++. ds A6 \\$6
++. ds A7 \\$7
++. ds A8 \\$8
++. ds A9 \\$9
++. nr fV \\n(.$
++. fV
++.\}
++.ds qL \&\\*(sL
++.ds qR \&\\*(sR
++.En \\$1 \\$2 \\$3 \\$4 \\$5 \\$6 \\$7 \\$8 \\$9
++..
++.de Sh
++.nr nS 0
++.nr sE 0
++.nr iS 0
++.ie "\\$1"NAME" \{\
++. hK
++' in 0
++.\}
++.el \{\
++. ie "\\$1"̾Á°" \{\
++. hK
++' in 0
++. \}
++. el \{\
++. ie "\\$1"̾¾Î" \{\
++. hK
++' in 0
++. \}
++. el \{\
++. nr nS 0
++. nr nA 0
++. nr nF 0
++. nr nT 0
++. nr nY 0
++. nr aN 0
++. nr oT 0
++. if "\\$1"SEE" .nr nA 1
++. if "\\$1"´ØÏ¢¹àÌÜ" .nr nA 1
++. if "\\$1"FILES" .nr nF 1
++. if "\\$1"¥Õ¥¡¥¤¥ë" .nr nF 1
++. if "\\$1"´ØÏ¢¥Õ¥¡¥¤¥ë" .nr nF 1
++. if "\\$1"STANDARDS" .nr nT 1
++. if "\\$1"½àµò" .nr nT 1
++. if "\\$1"µ¬³Ê" .nr nT 1
++. if "\\$1"SYNOPSIS" .nr nS 1
++. if "\\$1"½ñ¼°" .nr nS 1
++. if "\\$1"DESCRIPTION" \{\
++. rr fB
++. rr Fb
++. ds Fb
++. nr fY 0
++. nr fZ 0
++. \}
++. if "\\$1"ÀâÌÀ" \{\
++. rr fB
++. rr Fb
++. ds Fb
++. nr fY 0
++. nr fZ 0
++. \}
++. if "\\$1"²òÀâ" \{\
++. rr fB
++. rr Fb
++. ds Fb
++. nr fY 0
++. nr fZ 0
++. \}
++. if "\\$1"AUTHORS" .nr nY 1
++. if "\\$1"Ãø¼Ô" .nr nY 1
++. if "\\$1"ºî¼Ô" .nr nY 1
++. in 0
++. \}
++. \}
++.\}
++.pL
++'sp
++.ns
++.ta .5i 1i 1.5i 2i 2.5i 3i 3.5i 4i 4.5i 5i 5.5i 6i 6.5i
++.if !\\n(cR .ne 3
++'fi
++\&\\*(sH\\$1 \|\\$2 \|\\$3 \|\\$4 \|\\$5 \|\\$6 \|\\$7 \|\\$8 \|\\$9
++\&\fP\s0\&
++.in \\n(.iu+\\n(Tiu
++.if "\\$1"SEE" .nr sE 1
++.ns
++..
+--- groff-1.18.1.1.orig/tmac/groff_trace.man
++++ groff-1.18.1.1/tmac/groff_trace.man
+@@ -31,6 +31,10 @@
+ A copy of the Free Documentation License is included as a file called
+ FDL in the main directory of the groff source package.
+ ..
++.ig
++A copy of the GNU Free Documentation License is also available in this
++Debian package as /usr/share/doc/groff/copyright.
++..
+ .
+ .\" --------------------------------------------------------------------
+ .\" Setup
+--- groff-1.18.1.1.orig/tmac/docj-ditroff
++++ groff-1.18.1.1/tmac/docj-ditroff
+@@ -0,0 +1,305 @@
++.\" Copyright (c) 1991 The Regents of the University of California.
++.\" All rights reserved.
++.\"
++.\" Redistribution and use in source and binary forms, with or without
++.\" modification, are permitted provided that the following conditions
++.\" are met:
++.\" 1. Redistributions of source code must retain the above copyright
++.\" notice, this list of conditions and the following disclaimer.
++.\" 2. Redistributions in binary form must reproduce the above copyright
++.\" notice, this list of conditions and the following disclaimer in the
++.\" documentation and/or other materials provided with the distribution.
++.\" 3. All advertising materials mentioning features or use of this software
++.\" must display the following acknowledgement:
++.\" This product includes software developed by the University of
++.\" California, Berkeley and its contributors.
++.\" 4. Neither the name of the University nor the names of its contributors
++.\" may be used to endorse or promote products derived from this software
++.\" without specific prior written permission.
++.\"
++.\" THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
++.\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
++.\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
++.\" ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
++.\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
++.\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
++.\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
++.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
++.\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
++.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
++.\" SUCH DAMAGE.
++.\"
++.\" @(#)doc-ditroff 5.8 (Berkeley) 8/5/91
++.\"
++.\" tmac.mdoc-ditroff
++.if \n(.g .if !rC .nr C 0
++.ds aD \fI\s10
++.ds aR \f(CO\s10
++.ds cM \f(CB\s10
++.ds dF \fR\s10
++.ds eM \fI\s10
++.ds eR \fC\s10
++.ds eV \fC\s10
++.ds fA \f(CO\s10
++.ds fD \f(CB\s10
++.ds fL \f(CB\s10
++.ds fN \f(CB\s10
++.ds fP \fP\s0
++.ds fS \s0
++.ds fT \f(CO\s10
++.ds Hs \fR\s10
++.ds iC \f(CB\s10
++.ds lI \fC
++.ds lP \fR\|(\|\fP\s10
++.ds lp \fR(\fP\s10
++.ds rP \fR\|)\|\fP\s10
++.ds rp \fR)\fP\s10
++.ds lB \fR\^[\^\fP\s10
++.ds rB \fR\^]\fP\s10
++.ds mL \fB\s10
++.ds nM \f(CB\s10
++.ds nO \fR\s10
++.ds nT \s0
++.ds pA \fC\s10
++.ds Pu \fR{\ .\ ,\ :\ ;\ (\ )\ [\ ]\ \fR}
++.ds rA \fR\s10
++.ds rT \f(CO\s10
++.ds sH \fB\s10
++.ds sP \s0
++.ds sY \fB\s10
++.ds sX \fR\s10
++.ds tF \fR
++.ds tN \s9
++.ds vA \fI\s10
++.ds Vs \fR\s10
++.ds vT \f(CB\s10
++.ds xR \fC\s10
++.tr *\(**
++.nr sI \w\a\fC,\au*5
++.nr Ti \n(sIu
++.nr Pp .5v
++.ds lS \0
++.nr lS \w'\0'u
++.nr dI 6n
++.de pL
++.nr Hm .5i
++.nr Fm .5i
++.nr ll 6.5i
++.ll 6.5i
++.nr lt 6.5i
++.lt 6.5i
++.nr po 1i
++.po 1.i
++.nr dV .5v
++..
++.ds <= \(<=
++.ds >= \(>=
++.ie \n(.g \{\
++. ds Lq \(lq
++. ds Rq \(rq
++.\}
++.el \{\
++. ds Lq \&``
++. ds Rq \&''
++.\}
++.ds ua \(ua
++.ds aa \(aa
++.ds ga \(ga
++.ds sR \&'
++.ds sL \&`
++.ds q \&"
++.ds Pi \(*p
++.ds Ne \(!=
++.ds Le \(<=
++.ds Ge \(>=
++.ds Lt <
++.ds Gt >
++.ds Pm \(+-
++.ds If \(if
++.ds Na \fINaN\fP
++.ds Ba \fR\&|\fP
++.nr gX 0
++.de hK
++.ds hT \\*(dT
++.if !"\\*(cH"Null" \{\
++. ie !"\\*(gP"Null" .as hT \|(\|\\*(cH\\*(gP\|)
++. el .as hT \\|(\\|\\*(cH\\|)
++.\}
++.if "\\*(cH"Null" \{\
++. if !"\\*(gP"Null" .as hT \&\|(\|\\*(gP\|)
++.\}
++.wh 0 hM
++.wh -1.25i fM
++.nr nL \\n(nl
++.ie \\n(gX==1 \{\
++. rm n1
++. bp
++.\}
++.el \{\
++' bp
++.\}
++.if \\n(nL>0 \{\
++. if !\\nC \{\
++. nr % 1
++. \}
++.\}
++.nr gX 0
++.em lM
++..
++.nr fW \w\a\fC0\a
++.de sW
++.nr sW \w\a\fC\\$1\a
++.ie \\n(sW>=\\n(fW \{\
++. ie \\n(sW%\\n(fW .nr sW (\\n(sW/\\n(fW)+1
++. el .nr sW \\n(sW/\\n(fW
++.\}
++.el \{\
++. ie \\n(sW>0 .nr sW 1
++. el .nr sW 0
++.\}
++..
++.de aW
++.nr sW \w\a\fC\\*(A\\$1\a
++.ie \\n(sW>=\\n(fW \{\
++. ie \\n(sW%\\n(fW .nr sW (\\n(sW/\\n(fW)+1
++. el .nr sW \\n(sW/\\n(fW
++.\}
++.el \{\
++. ie \\n(sW>0 .nr sW 1
++. el .nr sW 0
++.\}
++..
++.de Ql
++.if \\n(aC==0 \{\
++. ds mN Ql
++. ds A1 \\$1
++. ds A2 \\$2
++. ds A3 \\$3
++. ds A4 \\$4
++. ds A5 \\$5
++. ds A6 \\$6
++. ds A7 \\$7
++. ds A8 \\$8
++. nr fV \\n(.$
++. fV
++.\}
++.nr aP \\n(aP+1
++.aW \\n(aP
++.nr aP \\n(aP-1
++.if \\n(sW>2 .Li
++.if \\n(sW<=2 \{\
++. if (\\n(aP>0) \{\
++. ds A\\n(aP Li
++. nr aP \\n(aP -1
++. \}
++. if (\\n(aP==0) \{\
++. rm C0 C1 C2 C3 C4 C5 C6 C7 C8 C9
++. rm S1 S2 S3 S4 S5 S6 S7 S8 S9
++. rn A8 A9
++. rn A7 A8
++. rn A6 A7
++. rn A5 A6
++. rn A4 A5
++. rn A3 A4
++. rn A2 A3
++. rn A1 A2
++. ds A1 Li
++. nr fV \\n(aC+1
++. nr aC 0
++. fV
++. \}
++. ds qL \&\\*(sL
++. ds qR \&\\*(sR
++. En
++.\}
++..
++.de Sh
++.nr nS 0
++.nr sE 0
++.nr iS 0
++'ad
++.ie "\\$1"NAME" \{\
++. hK
++' in 0
++.\}
++.el \{\
++. ie "\\$1"̾Á°" \{\
++. hK
++' in 0
++. \}
++. el \{\
++. ie "\\$1"̾¾Î" \{\
++. hK
++' in 0
++. \}
++. el \{\
++. nr nS 0
++. nr nA 0
++. nr nF 0
++. nr nT 0
++. nr nY 0
++. nr oT 0
++. if "\\$1"SYNOPSIS" \{\
++. na
++. nr nS 1
++. \}
++. if "\\$1"½ñ¼°" \{\
++. na
++. nr nS 1
++. \}
++. if "\\$1"DESCRIPTION" \{\
++. nr fY 0
++. nr fZ 0
++. nr fB 0
++. nr Fb 0
++. ds Fb
++. \}
++. if "\\$1"ÀâÌÀ" \{\
++. nr fY 0
++. nr fZ 0
++. nr fB 0
++. nr Fb 0
++. ds Fb
++. \}
++. if "\\$1"²òÀâ" \{\
++. nr fY 0
++. nr fZ 0
++. nr fB 0
++. nr Fb 0
++. ds Fb
++. \}
++. if "\\$1"SEE" \{\
++. nr nA 1
++. na
++. \}
++. if "\\$1"´ØÏ¢¹àÌÜ" \{\
++. nr nA 1
++. na
++. \}
++. if "\\$1"FILES" .nr nF 1
++. if "\\$1"¥Õ¥¡¥¤¥ë" .nr nF 1
++. if "\\$1"´ØÏ¢¥Õ¥¡¥¤¥ë" .nr nF 1
++. if "\\$1"STANDARDS" .nr nT 1
++. if "\\$1"½àµò" .nr nT 1
++. if "\\$1"µ¬³Ê" .nr nT 1
++. if "\\$1"AUTHORS" .nr nY 1
++. if "\\$1"Ãø¼Ô" .nr nY 1
++. if "\\$1"ºî¼Ô" .nr nY 1
++. if "\\$1"SEE" .nr sE 1
++. if "\\$1"´ØÏ¢¹àÌÜ" .nr sE 1
++. in 0
++. nr aN 0
++. \}
++. \}
++.\}
++.pL
++'sp
++.ns
++.ta .5i 1i 1.5i 2i 2.5i 3i 3.5i 4i 4.5i 5i 5.5i 6i 6.5i
++.if !\\n(cR .ne 3
++'fi
++\&\\*(sH\\$1 \|\\$2 \|\\$3 \|\\$4 \|\\$5 \|\\$6 \|\\$7 \|\\$8 \|\\$9
++\&\fP\s0\&
++.in \\n(.iu+\\n(Tiu
++.ns
++..
+--- groff-1.18.1.1.orig/tmac/tty.tmac
++++ groff-1.18.1.1/tmac/tty.tmac
+@@ -68,7 +68,7 @@
+ .ie '\*(.T'cp1047' \
+ . do mso cp1047.tmac
+ .el \
+-. if '\*(.T'latin1' \
++. if !'\*(.T'ascii' \
+ . do mso latin1.tmac
+ .
+ .\" If you want the character definitions in tty-char.tmac to be loaded
+--- groff-1.18.1.1.orig/tmac/gb.tmac
++++ groff-1.18.1.1/tmac/gb.tmac
+@@ -0,0 +1,15 @@
++.\" Kinsoku table for the GB2312 encoding of Chinese, recoded from
++.\" kinsoku.el in Emacs 22.0.50.
++.\" Checked by Simon Law, who reckons this is "mostly right". That will
++.\" probably do for now ...
++.\"
++.cflags 256 ¡¢¡££®£¬¡¤¡¥¡¦¡§¡¨¡©¡ª¡«¡¬¡¡¯¡±£©¡³¡µ¡·¡¹¡»¡½
++.cflags 256 ¡¿£»£º£¿£¡¡À¡Á¡Â¡Ã¡ã¡ä¡å¡æ£¯£Ü£¢£ß£þ£ü¨å
++.cflags 512 ¨Å¨Æ¨Ç¨È¨É¨Ê¨Ë¨Ì¨Í¨Î¨Ï¨Ð¨Ñ¨Ò¨Ó¨Ô¨Õ¨Ö¨×¨Ø¨Ù¨è
++.\" Simon Law supplied these.
++.cflags 512 £¨¡®¡°¡²¡´¡¶¡¸¡º¡¼¡¾
++.\"
++.\" http://tcl.apache.org/sources/tcl/tools/encoding/gb2312.txt lists U+FF0D
++.\" as FULLWIDTH HYPHEN-MINUS. Is this correct?
++.\"
++.hc £
+--- groff-1.18.1.1.orig/tmac/docj.tmac
++++ groff-1.18.1.1/tmac/docj.tmac
+@@ -0,0 +1,3427 @@
++.\" Copyright (c) 1991 The Regents of the University of California.
++.\" All rights reserved.
++.\"
++.\" Redistribution and use in source and binary forms, with or without
++.\" modification, are permitted provided that the following conditions
++.\" are met:
++.\" 1. Redistributions of source code must retain the above copyright
++.\" notice, this list of conditions and the following disclaimer.
++.\" 2. Redistributions in binary form must reproduce the above copyright
++.\" notice, this list of conditions and the following disclaimer in the
++.\" documentation and/or other materials provided with the distribution.
++.\" 3. All advertising materials mentioning features or use of this software
++.\" must display the following acknowledgement:
++.\" This product includes software developed by the University of
++.\" California, Berkeley and its contributors.
++.\" 4. Neither the name of the University nor the names of its contributors
++.\" may be used to endorse or promote products derived from this software
++.\" without specific prior written permission.
++.\"
++.\" THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
++.\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
++.\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
++.\" ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
++.\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
++.\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
++.\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
++.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
++.\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
++.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
++.\" SUCH DAMAGE.
++.\"
++.\" @(#)doc 5.8 (Berkeley) 8/5/91
++.\" Modified by jjc@jclark.com as follows: the doc-* files are assumed to be
++.\" installed as mdoc/doc-* rather than tmac.doc-* (the filename
++.\" `tmac.doc-common' would be too long); when using groff, the doc-* files
++.\" are loaded using the `mso' request.
++.\"
++.\" .mdoc-parse - attempt to parse troff request arguments
++.\" %beginstrip%
++.if \n(.g \{\
++.cp 0
++.ftr C CR
++.\}
++.if \n(.g .ig
++.de sO
++.so /usr/share/tmac/\\$1
++..
++.if !\n(.g .ig
++.de sO
++.mso mdoc/\\$1
++..
++.if t \{\
++. sO docj-ditroff
++.\}
++.if n \{\
++. sO docj-nroff
++.\}
++.sO doc-common
++.sO doc-syms
++.\" NS Db macro - start/stop DEBUG MODE
++.\" NS Db register DEBUG MODE
++.\" NS iN register DEBUG MODE (inline if 1, to stderr if 0 (default))
++.nr Db 0
++.de Db
++.ie \\n(.$==0 \{\
++. ie \\n(Db==0 \{\
++.tm DEBUGGING ON
++. nr Db 1
++. \}
++. el \{\
++.tm DEBUGGING OFF
++. nr Db 0
++. \}
++.\}
++.el \{\
++. if "\\$1"on" \{\
++.tm DEBUGGING ON
++. nr Db 1
++. \}
++. if "\\$1"off" \{\
++.tm DEBUGGING OFF
++. nr Db 0
++. \}
++.\}
++..
++.\" NS aV macro - parse argument vector (recursive) (.aV arg ... )
++.\" NS fV macro - parse argument vector (recursive) (.fV)
++.\" NS aC register argument counter (aV/fV)
++.\" NS fV register argument counter (must set to \\n(.$ prior to reuqest) (fV)
++.\" NS A[0-9] argument vector (aV/fV)
++.\" NS C[0-9] reg. arg type(1=macro, 2=arg, 3=punct-suf, 4=punct-pre) (aV/fV)
++.\" NS S[0-9] space vector (sV)
++.\" NS aP register argument pointer (aV)
++.\" NS yU local string used for debugging
++.\" NS iI local register (indent for inline debug mode)
++.\" NS mN name of calling request (set in each user requestable macro)
++.de aV
++.nr aC \\n(aC+1
++.ie "\\$1"|" \{\
++. if "\\*(mN"Op" .ds A\\n(aC \fR\\$1\fP
++. if "\\*(mN"Ar" .ds A\\n(aC \fR\\$1\fP
++. if "\\*(mN"Fl" .ds A\\n(aC \fR\\$1\fP
++. if "\\*(mN"Cm" .ds A\\n(aC \fR\\$1\fP
++. if "\\*(mN"It" .ds A\\n(aC \fR\\$1\fP
++.\}
++.el .ds A\\n(aC \\$1
++.aU \\n(aC
++.nr C\\n(aC \\n(aT
++.s\\n(aT
++.if \\n(Db \{\
++. if \\n(aT==1 .ds yU Executable
++. if \\n(aT==2 .ds yU String
++. if \\n(aT==3 .ds yU Closing Punctuation or suffix
++. if \\n(aT==4 .ds yU Opening Punctuation or prefix
++. if \\n(iN==1 \{\
++. br
++. nr iI \\n(.iu
++. in -\\n(iIu
++. if \\n(aC==1 \{\
++\&\fBDEBUG(argv) MACRO:\fP `.\\*(mN' \fBLine #:\fP \\n(.c
++. \}
++\&\t\fBArgc:\fP \\n(aC \fBArgv:\fP `\\*(A\\n(aC' \fBLength:\fP \\n(sW
++\&\t\fBSpace:\fP `\\*(S\\n(aC' \fBClass:\fP \\*(yU
++. \}
++. if \\n(iN==0 \{\
++. if \\n(aC==1 \{\
++. tm DEBUG(argv) MACRO: `.\\*(mN' Line #: \\n(.c
++. \}
++. tm \tArgc: \\n(aC Argv: `\\*(A\\n(aC' Length: \\n(sW
++. tm \tSpace: `\\*(S\\n(aC' Class: \\*(yU
++. \}
++.\}
++.ie \\n(.$==1 \{\
++. nr aP 0
++. ie \\n(dZ==1 \{\
++. if \\n(oM>1 .as b1 \\*(S0
++. \}
++. el \{\
++. if \\n(oM>0 \{\
++. if \\n(fC==0 .as b1 \\*(S0
++. \}
++. \}
++. ds S0 \\*(S\\n(aC
++. if \\n(Db \{\
++. if \\n(iN==1 \{\
++\&MACRO REQUEST: \t.\\*(mN \\*(A1 \\*(A2 \\*(A3 \\*(A4 \\*(A5 \\*(A6 \\*(A7 \\*(A8 \\*(A9
++. br
++. in \\n(iIu
++. \}
++. if \\n(iN==0 \{\
++.tm \tMACRO REQUEST: .\\*(mN \\*(A1 \\*(A2 \\*(A3 \\*(A4 \\*(A5 \\*(A6 \\*(A7 \\*(A8 \\*(A9
++. \}
++. \}
++.\}
++.el .aV \\$2 \\$3 \\$4 \\$5 \\$6 \\$7 \\$8 \\$9
++..
++.de fV
++.nr aC \\n(aC+1
++.if "\\*(A\\n(aC"|" \{\
++. if "\\*(mN"Op" .ds A\\n(aC \fR\\*(A\\n(aC\fP
++. if "\\*(mN"Ar" .ds A\\n(aC \fR\\*(A\\n(aC\fP
++. if "\\*(mN"Fl" .ds A\\n(aC \fR\&\\*(A\\n(aC\fP
++. if "\\*(mN"Cm" .ds A\\n(aC \fR\\*(A\\n(aC\fP
++. if "\\*(mN"It" .ds A\\n(aC \fR\\*(A\\n(aC\fP
++.\}
++.aU \\n(aC
++.nr C\\n(aC \\n(aT
++.s\\n(aT
++.if \\n(Db \{\
++. if \\n(aT==1 .ds yU Executable
++. if \\n(aT==2 .ds yU String
++. if \\n(aT==3 .ds yU Closing Punctuation or suffix
++. if \\n(aT==4 .ds yU Opening Punctuation or prefix
++. if \\n(iN==1 \{\
++. br
++. nr iI \\n(.iu
++. in -\\n(iIu
++. if \\n(aC==1 \{\
++\&\fBDEBUG(fargv) MACRO:\fP `.\\*(mN' \fBLine #:\fP \\n(.c
++. \}
++\&\t\fBArgc:\fP \\n(aC \fBArgv:\fP `\\*(A\\n(aC' \fBLength:\fP \\n(sW
++\&\t\fBSpace:\fP `\\*(S\\n(aC' \fBClass:\fP \\*(yU
++. \}
++. if \\n(iN==0 \{\
++. if \\n(aC==1 \{\
++. tm DEBUG(fargv) MACRO: `.\\*(mN' Line #: \\n(.c
++. \}
++. tm \tArgc: \\n(aC Argv: `\\*(A\\n(aC' Length: \\n(sW
++. tm \tSpace: `\\*(S\\n(aC' Class: \\*(yU
++. \}
++.\}
++.ie \\n(fV==1 \{\
++. nr aP 0
++. ie \\n(dZ==1 \{\
++. if \\n(oM>1 .as b1 \\*(S0
++. \}
++. el \{\
++. if \\n(oM>0 \{\
++. if \\n(fC==0 .as b1 \\*(S0
++. \}
++. \}
++. ds S0 \\*(S\\n(aC
++. nr fV 0
++. if \\n(Db \{\
++. ie \\n(iN \{\
++\&\tMACRO REQUEST: .\\*(mN \\*(A1 \\*(A2 \\*(A3 \\*(A4 \\*(A5 \\*(A6 \\*(A7 \\*(A8 \\*(A9
++. br
++. in \\n(iIu
++. \}
++. el \{\
++.tm \tMACRO REQUEST: .\\*(mN \\*(A1 \\*(A2 \\*(A3 \\*(A4 \\*(A5 \\*(A6 \\*(A7 \\*(A8 \\*(A9
++. \}
++. \}
++.\}
++.el \{\
++. nr fV \\n(fV-1
++. fV
++.\}
++..
++.\" NS aX macro - stuff saved strings into `b1' (used by -diag list)
++.de aX
++.nr aP \\n(aP+1
++.as b1 \&\\*(A\\n(aP
++.ie \\n(fV==1 \{\
++. nr aP 0
++. nr fV 0
++.\}
++.el \{\
++. as b1 \&\\*(sV
++. nr fV \\n(fV-1
++. aX
++.\}
++..
++.\" NS aI macro - append arg to arg vector: .aI [arg] [type] (used by .En only)
++.de aI
++.ie \\n(aC<9 \{\
++. nr aC \\n(aC+1
++. ds A\\n(aC \\$1
++. nr C\\n(aC \\$2
++. s\\$2
++. ds xV S\\n(aC
++.\}
++.el \{\
++. tm Usage: Too many arguments (maximum of 8 accepted) (#\\n(.c)
++. tm \\*(A1 \\*(A2 \\*(A3 \\*(A4 \\*(A5 \\*(A6 \\*(A7 \\*(A8 \\*(A9
++.\}
++..
++.\"
++.\" NS aZ macro - print buffer (pB) and clean up arg vectors (aY)
++.de aZ
++.pB
++.aY
++..
++.\" NS aY macro - clean up arg vector
++.de aY
++.rm C0 C1 C2 C3 C4 C5 C6 C7 C8 C9
++.rm A0 A1 A2 A3 A4 A5 A6 A7 A8 A9
++.rm S1 S2 S3 S4 S5 S6 S7 S8 S9
++.nr aC 0
++.nr aP 0
++..
++.\" NS pB macro - test for end of vector (eol) (print b1 buffer or divert)
++.de pB
++.ie \\n(dZ==1 \{\
++. if \\n(oM==1 \{\&\\*(b1
++. rm S0
++. ds b1
++. \}
++. if \\n(oM==0 \{\
++. x2
++. \}
++.\}
++.el \{\
++. ie \\n(oM==0 \{\&\\*(b1
++. rm S0
++. ds b1
++. \}
++. el \{\
++. if ((\\n(sM==1)&(\\n(tP==0)) \{\
++. x1
++. \}
++. \}
++.\}
++.hy
++..
++.\" NS x1 macro - save buffer and divert if tP flag set
++.\" NS eB diversion string
++.\" NS b2 string save of buffer
++.\" NS lK register count of lines read from input file
++.de x1
++.nr dZ \\n(dZ+1
++.ds b2 \\*(b1
++.ds b1
++.nr lK \\n(.c
++.ev 2
++.fi
++.di eB
++..
++.\"
++.\" NS x2 macro - end diversion and print
++.\" NS b0 string local temporary
++.de x2
++.br
++.di
++.ev
++.ie (\\n(.c-\\n(lK>1) \{\
++. ds b0 \&\\*(eB\\
++. ds b1 \\*(b2\\*(b0\\*(b1
++.\}
++.el .ds b1 \\*(b2\\*(b1
++\&\\*(b1
++.rm eB b2 b0 b1
++.nr dZ \\n(dZ-1
++..
++.\" NS Fl macro - flags (appends - and prints flags)
++.\" NS cF register save current font
++.\" NS cZ register save current font size
++.de Fl
++.as b1 \&\\*(fL
++.if \\n(aC==0 \{\
++. ie \\n(.$==0 \{\
++. as b1 \&\|\-\|\fP\s0
++. pB
++. \}
++. el \{\
++. ds mN Fl
++. aV \\$1 \\$2 \\$3 \\$4 \\$5 \\$6 \\$7 \\$8 \\$9
++. \}
++.\}
++.if \\n(aC>0 \{\
++. ie (\\n(aC-\\n(aP)==0 \{\
++. as b1 \&\|\-\fP\s0
++. aZ
++. \}
++. el \{\
++. nr aP \\n(aP+1
++. ie \\n(C\\n(aP==1 \{\
++. as b1 \&\|\-\fP\s0
++. \\*(A\\n(aP
++. \}
++. el \{\
++. nr cF \\n(.f
++. nr cZ \\n(.s
++. if \\n(C\\n(aP==3 \{\
++. as b1 \&\|\-\|
++. \}
++. fR
++. \}
++. \}
++.\}
++..
++.\"
++.\" NS fR macro - Fl flag recursion routine (special handling)
++.\" NS jM local register
++.\" NS jN local register
++.\"
++.de fR
++.hy 0
++.nr jM \\n(C\\n(aP
++.ie \\n(jM==1 \{\
++. as b1 \&\fP\s0
++. \\*(A\\n(aP
++.\}
++.el \{\
++. nr jN \\n(aP
++. ie \\n(jM==2 \{\
++. ie !"\\*(A\\n(aP"\\*(Ba" \{\
++. ie !"\\*(A\\n(aP"\fR|\fP" \{\
++. ie "\\*(A\\n(aP"-" .as b1 \&\|\-\^\-\|
++. el .as b1 \&\|\-\\*(A\\n(aP
++. \}
++. el .as b1 \&\\*(A\\n(aP
++. \}
++. el .as b1 \&\\*(A\\n(aP
++. \}
++. el .as b1 \&\f\\n(cF\s\\n(cZ\\*(A\\n(aP\fP\s0
++. ie \\n(aC==\\n(aP \{\
++. if \\n(jM==4 .as b1 \&\|\-
++. as b1 \&\fP\s0
++. aZ
++. \}
++. el \{\
++. nr aP \\n(aP+1
++. ie ((\\n(C\\n(aP==3)&(\\n(C\\n(jN==4)) .as b1 \&\|\-
++. el .as b1 \&\\*(S\\n(jN
++. fR \\$2 \\$3 \\$4 \\$5 \\$6 \\$7 \\$8 \\$9
++. \}
++.\}
++.rr jM jN
++..
++.\"
++.\" NS nR macro - general name recursion routine
++.\" NS jM local register
++.\" NS jN local register
++.de nR
++.hy 0
++.nr jM \\n(C\\n(aP
++.ie \\n(jM==1 \{\
++. as b1 \&\f\\n(cF\s\\n(cZ
++. \\*(A\\n(aP
++.\}
++.el \{\
++. nr jN \\n(aP
++. ie \\n(jM==2 .as b1 \&\\*(A\\n(aP
++. el .as b1 \&\f\\n(cF\s\\n(cZ\\*(A\\n(aP\fP\s0
++. ie \\n(aC==\\n(aP \{\
++. as b1 \&\f\\n(cF\s\\n(cZ
++. aZ
++. \}
++. el \{\
++. nr aP \\n(aP+1
++. as b1 \&\\*(S\\n(jN
++. nR
++. \}
++.\}
++.rr jM jN
++..
++.\" NS Ar macro - command line `argument' macro
++.\"
++.de Ar
++.as b1 \\*(aR
++.if \\n(aC==0 \{\
++. ie \\n(.$==0 \{\
++. as b1 file\ ...\fP\s0
++. pB
++. \}
++. el \{\
++. ds mN Ar
++. aV \\$1 \\$2 \\$3 \\$4 \\$5 \\$6 \\$7 \\$8 \\$9
++. \}
++.\}
++.if \\n(aC>0 \{\
++. ie (\\n(aC-\\n(aP)==0 \{\
++. as b1 \&file\ ...\fP\s0
++. aZ
++. \}
++. el \{\
++. nr aP \\n(aP+1
++. ie \\n(C\\n(aP==1 \{\
++. as b1 \&file\ ...\fP\s0
++. \\*(A\\n(aP
++. \}
++. el \{\
++. nr cF \\n(.f
++. nr cZ \\n(.s
++. if \\n(C\\n(aP==3 \{\
++. as b1 \&file\ ...
++. \}
++. nR
++. \}
++. \}
++.\}
++..
++.\" NS Ad macro - Addresses
++.de Ad
++.if \\n(aC==0 \{\
++. ie \\n(.$==0 .tm Usage: .Ad address ... \\*(Pu (#\\n(.c)
++. el \{\
++. ds mN Ad
++. aV \\$1 \\$2 \\$3 \\$4 \\$5 \\$6 \\$7 \\$8 \\$9
++. \}
++.\}
++.if \\n(aC>\\n(aP \{\
++. as b1 \\*(aD
++. nr aP \\n(aP+1
++. nr cF \\n(.f
++. nr cZ \\n(.s
++. nR
++.\}
++..
++.\" NS Cd macro - Config declaration (for section 4 SYNOPSIS) (not callable)
++.\" needs work - not very translatable
++.de Cd
++.if \\n(aC==0 \{\
++. ie \\n(.$==0 .tm Usage: .Cd Configuration file declaration (#\\n(.c)
++. el \{\
++. ds mN Cd
++. ds A1 \\$1
++. ds A2 \\$2
++. ds A3 \\$3
++. ds A4 \\$4
++. ds A5 \\$5
++. ds A6 \\$6
++. ds A7 \\$7
++. ds A8 \\$8
++. ds A9 \\$9
++. nr fV \\n(.$
++. fV
++. \}
++.\}
++.br
++.if \\n(aC>\\n(aP \{\
++. as b1 \\*(nM
++. nr aP \\n(aP+1
++. nr cF \\n(.f
++. nr cZ \\n(.s
++. ie \\n(nS \{\
++. if "\\*(mN"Cd" \{\
++. rs
++. ie \\n(nS>1 .br
++. el \{\
++. if \\n(iS==0 .nr iS \\n(Dsu
++. \}
++. in +\\n(iSu
++. ti -\\n(iSu
++. nr nS \\n(nS+1
++. \}
++. nR
++. in -\\n(iSu
++. \}
++. el .nR
++.\}
++..
++.\" NS Cm macro - Interactive command modifier (flag)
++.de Cm
++.if \\n(aC==0 \{\
++. ie \\n(.$==0 .tm Usage: .Cm Interactive command modifier ... \\*(Pu (#\\n(.c)
++. el \{\
++. ds mN Cm
++. ds A1 \\$1
++. ds A2 \\$2
++. ds A3 \\$3
++. ds A4 \\$4
++. ds A5 \\$5
++. ds A6 \\$6
++. ds A7 \\$7
++. ds A8 \\$8
++. ds A9 \\$9
++. nr fV \\n(.$
++. fV
++. \}
++.\}
++.if \\n(aC>\\n(aP \{\
++. as b1 \\*(cM
++. nr aP \\n(aP+1
++. nr cF \\n(.f
++. nr cZ \\n(.s
++. nR
++.\}
++..
++.\" NS Dv macro - define variable
++.de Dv
++.if \\n(aC==0 \{\
++. ie \\n(.$==0 .tm Usage: .Dv define_variable ... \\*(Pu (#\\n(.c)
++. el \{\
++. ds mN Dv
++. aV \\$1 \\$2 \\$3 \\$4 \\$5 \\$6 \\$7 \\$8 \\$9
++. \}
++.\}
++.if \\n(aC>\\n(aP \{\
++. as b1 \\*(eR
++. nr aP \\n(aP+1
++. nr cF \\n(.f
++. nr cZ \\n(.s
++. nR
++.\}
++..
++.\" NS Em macro - Emphasis
++.de Em
++.if \\n(aC==0 \{\
++. ie \\n(.$==0 \{\
++. tm Usage: .Em text ... \\*(Pu (#\\n(.c)
++. \}
++. el \{\
++. ds mN Em
++. ds A1 \\$1
++. ds A2 \\$2
++. ds A3 \\$3
++. ds A4 \\$4
++. ds A5 \\$5
++. ds A6 \\$6
++. ds A7 \\$7
++. ds A8 \\$8
++. ds A9 \\$9
++. nr fV \\n(.$
++. fV
++. \}
++.\}
++.if \\n(aC>\\n(aP \{\
++. as b1 \\*(eM
++. nr aP \\n(aP+1
++. nr cF \\n(.f
++. nr cZ \\n(.s
++. nR
++.\}
++..
++.\" NS Er macro - Errnotype
++.de Er
++.if \\n(aC==0 \{\
++. ie \\n(.$==0 .tm Usage: .Er ERRNOTYPE ... \\*(Pu (#\\n(.c)
++. el \{\
++. ds mN Er
++. aV \\$1 \\$2 \\$3 \\$4 \\$5 \\$6 \\$7 \\$8 \\$9
++. \}
++.\}
++.if \\n(aC>\\n(aP \{\
++. as b1 \\*(eR
++. nr aP \\n(aP+1
++. nr cF \\n(.f
++. nr cZ \\n(.s
++. nR
++.\}
++..
++.\" NS Ev macro - Environment variable
++.de Ev
++.if \\n(aC==0 \{\
++. ie \\n(.$==0 .tm Usage: .Ev ENVIRONMENT_VARIABLE ... \\*(Pu (#\\n(.c)
++. el \{\
++. ds mN Ev
++. aV \\$1 \\$2 \\$3 \\$4 \\$5 \\$6 \\$7 \\$8 \\$9
++. \}
++.\}
++.if \\n(aC>\\n(aP \{\
++. as b1 \\*(eV
++. nr aP \\n(aP+1
++. nr cF \\n(.f
++. nr cZ \\n(.s
++. nR
++.\}
++..
++.\" NS Fd macro - function declaration - not callable (& no err check)
++.\" NS fD register subroutine test (in synopsis only)
++.\" NS fY register subroutine count (in synopsis only) (fortran only)
++.\" NS fZ register also subroutine count (in synopsis only)
++.de Fd
++.ds mN Fd
++.if \\n(nS>0 \{\
++.\" if a variable type was the last thing given, want vertical space
++. if \\n(fX>0 \{\
++. Pp
++. nr fX 0
++. \}
++.\" if a subroutine was the last thing given, want vertical space
++. if \\n(fZ>0 \{\
++. ie \\n(fD==0 \{\
++. Pp
++. rs
++. \}
++. el .br
++. \}
++. nr fD \\n(fD+1
++.\}
++.nr cF \\n(.f
++.nr cZ \\n(.s
++\&\\*(fD\\$1 \\$2 \\$3 \\$4 \\$5 \\$6 \\$7 \\$8 \\$9
++.br
++.ft \\n(cF
++.fs \\n(cZ
++..
++.\" NS Fr macro - function return value - not callable (at the moment)
++.de Fr
++.if \\n(aC==0 \{\
++. ie \\n(.$==0 .tm Usage: .Fr Function_return_value... \\*(Pu (#\\n(.c)
++. el \{\
++. ds mN Fr
++. aV \\$1 \\$2 \\$3 \\$4 \\$5 \\$6 \\$7 \\$8 \\$9
++. \}
++.\}
++.if \\n(aC>\\n(aP \{\
++. as b1 \\*(aR
++. nr aP \\n(aP+1
++. nr cF \\n(.f
++. nr cZ \\n(.s
++. nR
++.\}
++..
++.\" NS Ic macro - Interactive command
++.de Ic
++.if \\n(aC==0 \{\
++. ie \\n(.$==0 .tm Usage: .Ic Interactive command ... \\*(Pu (#\\n(.c)
++. el \{\
++. ds mN Ic
++. aV \\$1 \\$2 \\$3 \\$4 \\$5 \\$6 \\$7 \\$8 \\$9
++. \}
++.\}
++.if \\n(aC>\\n(aP \{\
++. as b1 \\*(iC
++. nr aP \\n(aP+1
++. nr cF \\n(.f
++. nr cZ \\n(.s
++. nR
++.\}
++..
++.\" NS Li macro - literals
++.de Li
++.if \\n(aC==0 \{\
++. ie \\n(.$==0 .tm Usage .Li argument ... \\*(Pu (#\\n(.c)
++. el \{\
++. ds mN Li
++. ds A1 \\$1
++. ds A2 \\$2
++. ds A3 \\$3
++. ds A4 \\$4
++. ds A5 \\$5
++. ds A6 \\$6
++. ds A7 \\$7
++. ds A8 \\$8
++. ds A9 \\$9
++. nr fV \\n(.$
++. fV
++. \}
++.\}
++.if \\n(aC>\\n(aP \{\
++. as b1 \\*(lI
++. nr aP \\n(aP+1
++. nr cF \\n(.f
++. nr cZ \\n(.s
++. nR
++.\}
++..
++.\" NS Or macro - Pipe symbol (OR)
++.de Or
++.if \\n(aC==0 \{\
++. ie \\n(.$==0 .tm Usage: .Or ... \\*(Pu (#\\n(.c)
++. el \{\
++. ds mN Or
++. aV \\$1 \\$2 \\$3 \\$4 \\$5 \\$6 \\$7 \\$8 \\$9
++. \}
++.\}
++.if \\n(aC>\\n(aP \{\
++. as b1 \\*(iC
++. nr aP \\n(aP+1
++. nr cF \\n(.f
++. nr cZ \\n(.s
++. nR
++.\}
++..
++.\" NS Ms macro - Math symbol
++.de Ms
++.if \\n(aC==0 \{\
++. ie \\n(.$==0 .tm Usage: .Ms Math symbol ... \\*(Pu (#\\n(.c)
++. el \{\
++. ds mN Ms
++. aV \\$1 \\$2 \\$3 \\$4 \\$5 \\$6 \\$7 \\$8 \\$9
++. \}
++.\}
++.if \\n(aC>\\n(aP \{\
++. as b1 \\*(sY
++. nr aP \\n(aP+1
++. nr cF \\n(.f
++. nr cZ \\n(.s
++. nR
++.\}
++..
++.\" NS Nm macro - Name of command or page topic
++.\" NS n1 string - save first invocation of .Nm
++.\" NS iS register - indent second command line in a synopsis
++.de Nm
++.if \\n(aC==0 \{\
++. ie \\n(.$==0 \{\
++. ie "\\*(n1"" .tm Usage: .Nm Name(s) ... \\*(Pu (#\\n(.c)
++. el \&\\*(nM\\*(n1\fP\s0
++. \}
++. el \{\
++. ds mN Nm
++. ds A1 \\$1
++. ds A2 \\$2
++. ds A3 \\$3
++. ds A4 \\$4
++. ds A5 \\$5
++. ds A6 \\$6
++. ds A7 \\$7
++. ds A8 \\$8
++. ds A9 \\$9
++. nr fV \\n(.$
++. fV
++. \}
++.\}
++.if \\n(aC>0 \{\
++. ie \\n(aC==\\n(aP \{\
++. as b1 \&\\*(nM\\*(n1\fP\s0
++. aZ
++. \}
++. el \{\
++. as b1 \\*(nM
++. nr aP \\n(aP+1
++. ie \\n(C\\n(aP==1 \{\
++. as b1 \&\\*(n1\fP\s0
++. \\*(A\\n(aP
++. \}
++. el \{\
++. nr cF \\n(.f
++. nr cZ \\n(.s
++. if \\n(nS \{\
++. if "\\*(mN"Nm" \{\
++. rs
++. in -\\n(iSu
++. ie \\n(nS>1 .br
++. el \{\
++. if \\n(iS==0 \{\
++. sw \\$1
++. nr iS ((\\n(sWu+1)*\\n(fW)u
++. \}
++. \}
++. in +\\n(iSu
++. ti -\\n(iSu
++. nr nS \\n(nS+1
++. \}
++. \}
++. if "\\*(n1"" .ds n1 \\*(A\\n(aP
++. nR
++. \}
++. \}
++.\}
++..
++.\" NS Pa macro - Pathname
++.de Pa
++.if \\n(aC==0 \{\
++. ie \\n(.$==0 \&\\*(pA~\fP\s0
++. el \{\
++. ds mN Pa
++. aV \\$1 \\$2 \\$3 \\$4 \\$5 \\$6 \\$7 \\$8 \\$9
++. \}
++.\}
++.if \\n(aC>\\n(aP \{\
++. as b1 \\*(pA
++. nr aP \\n(aP+1
++. nr cF \\n(.f
++. nr cZ \\n(.s
++. nR
++.\}
++..
++.\" NS Sy macro - Symbolics
++.de Sy
++.if \\n(aC==0 \{\
++. ie \\n(.$==0 .tm Usage: .Sy symbolic_text ... \\*(Pu (#\\n(.c)
++. el \{\
++. ds mN Sy
++. ds A1 \\$1
++. ds A2 \\$2
++. ds A3 \\$3
++. ds A4 \\$4
++. ds A5 \\$5
++. ds A6 \\$6
++. ds A7 \\$7
++. ds A8 \\$8
++. ds A9 \\$9
++. nr fV \\n(.$
++. fV
++. \}
++.\}
++.if \\n(aC>\\n(aP \{\
++. as b1 \\*(sY
++. nr aP \\n(aP+1
++. nr cF \\n(.f
++. nr cZ \\n(.s
++. nR
++.\}
++..
++.\" NS Tn macro - Trade Name Macro
++.de Tn
++.if \\n(aC==0 \{\
++. ie \\n(.$==0 .tm Usage: .Tn Trade_name(s) ... \\*(Pu (#\\n(.c)
++. el \{\
++. ds mN Tn
++. aV \\$1 \\$2 \\$3 \\$4 \\$5 \\$6 \\$7 \\$8 \\$9
++. \}
++.\}
++.if \\n(aC>\\n(aP \{\
++. as b1 \\*(tN\\*(tF
++. nr aP \\n(aP+1
++. nr cF \\n(.f
++. nr cZ \\n(.s
++. nR
++.\}
++..
++.\" NS nN macro - Trade Name Macro for inside of reference
++.de nN
++.if \\n(aC==0 \{\
++. ie \\n(.$==0 .tm Usage: .Tn Trade_name(s) ... \\*(Pu (#\\n(.c)
++. el \{\
++. ds mN Tn
++. aV \\$1 \\$2 \\$3 \\$4 \\$5 \\$6 \\$7 \\$8 \\$9
++. \}
++.\}
++.if \\n(aC>\\n(aP \{\
++. as b1 \\*(tN
++. nr aP \\n(aP+1
++. nr cF \\n(.f
++. nr cZ \\n(.s
++. rR
++.\}
++..
++.\" NS Va macro - variable name macro
++.de Va
++.if \\n(aC==0 \{\
++. ie \\n(.$==0 .tm Usage: .Va variable_name(s) ... \\*(Pu (#\\n(.c)
++. el \{\
++. ds mN Va
++. aV \\$1 \\$2 \\$3 \\$4 \\$5 \\$6 \\$7 \\$8 \\$9
++. \}
++.\}
++.if \\n(aC>\\n(aP \{\
++. as b1 \\*(vA
++. nr aP \\n(aP+1
++. nr cF \\n(.f
++. nr cZ \\n(.s
++. nR
++.\}
++..
++.\"
++.\" NS No macro - Normal text macro (default text style if mess up)
++.de No
++.as b1 \\*(nO
++.if \\n(aC==0 \{\
++. ie \\n(.$==0 .tm Usage: .No must be called with arguments (#\\n(.c)
++. el \{\
++. ds mN No
++. aV \\$1 \\$2 \\$3 \\$4 \\$5 \\$6 \\$7 \\$8 \\$9
++. \}
++.\}
++.if \\n(aC>\\n(aP \{\
++. nr aP \\n(aP+1
++. ie \\n(C\\n(aP==1 \{\
++. \\*(A\\n(aP
++. \}
++. el \{\
++. nr cF \\n(.f
++. nr cZ \\n(.s
++. nR
++. \}
++.\}
++..
++.\"------------------------------------------------------------------------
++.\" NS Op macro - Option Expression
++.de Op
++.if \\n(aC==0 \{\
++. ds mN Op
++.\}
++.\" .ds qL \&\\*(lO
++.\" .ds qR \&\\*(rO
++.ds qL \&\\*(lB
++.ds qR \&\\*(rB
++.En \\$1 \\$2 \\$3 \\$4 \\$5 \\$6 \\$7 \\$8
++..
++.\" NS Aq macro - Enclose string in angle brackets
++.de Aq
++.if \\n(aC==0 .ds mN Aq
++.ds qL \&<
++.ds qR \&>
++.En \\$1 \\$2 \\$3 \\$4 \\$5 \\$6 \\$7 \\$8 \\$9
++..
++.\" NS Bq macro - Enclose string in square brackets
++.de Bq
++.if \\n(aC==0 .ds mN Bq
++.ds qL \&\\*(lB
++.ds qR \&\\*(rB
++.En \\$1 \\$2 \\$3 \\$4 \\$5 \\$6 \\$7 \\$8 \\$9
++..
++.\" NS Dq macro - Enclose string in double quotes
++.de Dq
++.if \\n(aC==0 .ds mN Dq
++.ds qL \&\\*(Lq
++.ds qR \&\\*(Rq
++.En \\$1 \\$2 \\$3 \\$4 \\$5 \\$6 \\$7 \\$8 \\$9
++..
++.\" NS Eq macro - Enclose string in double quotes
++.de Eq
++.if \\n(aC==0 .ds mN Eq
++.ds qL \\$1
++.ds qR \\$2
++.En \\$3 \\$4 \\$5 \\$6 \\$7 \\$8 \\$9
++..
++.\" NS Pq macro - Enclose string in parenthesis
++.de Pq
++.if \\n(aC==0 .ds mN Pq
++.ds qL \&\\*(lP
++.ds qR \&\\*(rP
++.En \\$1 \\$2 \\$3 \\$4 \\$5 \\$6 \\$7 \\$8 \\$9
++..
++.\" NS Ql macro - Quoted literal is in file mdocj-[dit|n|g]roff (too large
++.\" an if-else to carry along recursively for `if n ...')
++.\"
++.\" NS Sq macro - Enclose string in single quotes
++.de Qq
++.if \\n(aC==0 .ds mN Qq
++.ds qL \&\\*q
++.ds qR \&\\*q
++.En \\$1 \\$2 \\$3 \\$4 \\$5 \\$6 \\$7 \\$8 \\$9
++..
++.\" NS Sq macro - Enclose string in single quotes
++.de Sq
++.if \\n(aC==0 .ds mN Sq
++.ds qL \&\\*(sL
++.ds qR \&\\*(sR
++.En \\$1 \\$2 \\$3 \\$4 \\$5 \\$6 \\$7 \\$8 \\$9
++..
++.\"
++.\" NS Es macro - Set up strings for .En call
++.de Es
++.if \\n(aC==0 \{\
++. ie \\n(.$>2 .aV \\$1 \\$2 \\$3 \\$4 \\$5 \\$6 \\$7 \\$8 \\$9
++. el \{\
++. ds qL \\$1
++. ds qR \\$2
++. \}
++.\}
++.if \\n(aC>\\n(aP \{\
++. nr aP \\n(aP+1
++. ds qL \\*(A\\n(aP
++. nr aP \\n(aP+1
++. ds qR \\*(A\\n(aP
++. ie \\n(aC>\\n(aP .c\\n(C\\n(aP
++. el .aZ
++.\}
++..
++.\" .tm En beg arg(A[\\n(aP])==\\*(A\\n(aP;
++.\" .tm En oM==\\n(oM; dZ==\\n(dZ; Xt==\\n(Xt; aC==\\n(aC
++.\" NS En macro - Enclose string with given args (eg [ and ] etc)
++.\" NS qL string variable set by calling macro
++.\" NS qR string variable set by calling macro
++.\" NS aJ register (for vR)
++.de En
++.ie \\n(aC==0 \{\
++. ie \\n(.$==0 \{\
++. as b1 \&\\*(qL\\*(qR
++. pB
++. \}
++. el \{\
++.\". as mN (En)
++. aV \\$1 \\$2 \\$3 \\$4 \\$5 \\$6 \\$7 \\$8 \\$9
++. as b1 \&\\*(qL
++. \}
++.\}
++.el \{\
++. as b1 \&\\*(qL
++.\}
++.if \\n(aC>0 \{\
++. ie (\\n(aC-\\n(aP)==0 \{\
++. as b1 \&\\*(qR
++. aZ
++. \}
++. el \{\
++. ie \\n(C\\n(aC==3 \{\
++. nr aJ \\n(aC-1
++. vR
++. nr aJ \\n(aJ+1
++. ds A\\n(aJ \&\\*(qR\\*(A\\n(aJ
++. nr aJ 0
++. \}
++. el .aI \&\\*(qR 3
++. nr aP \\n(aP+1
++. if \\n(C\\n(aP==1 .\\*(A\\n(aP
++. if \\n(C\\n(aP>1 \{\
++. nr aP \\n(aP-1
++. No
++. \}
++. \}
++.\}
++..
++.\" NS vR macro - vector routine (for En, trace backwards past trail punct)
++.de vR
++.if \\n(C\\n(aJ==3 \{\
++. nr aJ \\n(aJ-1
++. vR
++.\}
++..
++.\"------------------------------------------------------------------------
++.\" NS Ao macro - Angle open
++.de Ao
++.if \\n(aC==0 .ds mN Ao
++.ds qL \&<
++.eO \\$1 \\$2 \\$3 \\$4 \\$5 \\$6 \\$7 \\$8 \\$9
++..
++.\" NS Ac macro - Angle close
++.de Ac
++.if \\n(aC==0 .ds mN Ac
++.ds qR \&>
++.eC \\$1 \\$2 \\$3 \\$4 \\$5 \\$6 \\$7 \\$8 \\$9
++..
++.\" NS Bo macro - Bracket open
++.de Bo
++.if \\n(aC==0 .ds mN Bo
++.ds qL \&[
++.eO \\$1 \\$2 \\$3 \\$4 \\$5 \\$6 \\$7 \\$8 \\$9
++..
++.\" NS Bc macro - Bracket close
++.de Bc
++.if \\n(aC==0 .ds mN Bc
++.ds qR \&]
++.eC \\$1 \\$2 \\$3 \\$4 \\$5 \\$6 \\$7 \\$8 \\$9
++..
++.\" NS Do macro - Double Quote open
++.de Do
++.if \\n(aC==0 .ds mN Do
++.ds qL \&\\*(Lq
++.eO \\$1 \\$2 \\$3 \\$4 \\$5 \\$6 \\$7 \\$8 \\$9
++..
++.\" NS Dc macro - Double Quote close
++.de Dc
++.if \\n(aC==0 .ds mN Dc
++.ds qR \&\\*(Rq
++.eC \\$1 \\$2 \\$3 \\$4 \\$5 \\$6 \\$7 \\$8 \\$9
++..
++.\" NS Eo macro - Enclose open
++.de Eo
++.if \\n(aC==0 .ds mN Eo
++.ds qL \\$1
++.eO \\$2 \\$3 \\$4 \\$5 \\$6 \\$7 \\$8 \\$9
++..
++.\" NS Ec macro - Enclose close
++.de Ec
++.if \\n(aC==0 .ds mN Ec
++.ds qR \\$1
++.eC \\$2 \\$3 \\$4 \\$5 \\$6 \\$7 \\$8 \\$9
++..
++.\" NS Oo macro - Option open
++.de Oo
++.if \\n(aC==0 .ds mN Oo
++.ds qL \&[
++.eO \\$1 \\$2 \\$3 \\$4 \\$5 \\$6 \\$7 \\$8 \\$9
++..
++.\" NS Oc macro - Option close
++.de Oc
++.if \\n(aC==0 .ds mN Oc
++.ds qR \&]
++.eC \\$1 \\$2 \\$3 \\$4 \\$5 \\$6 \\$7 \\$8 \\$9
++..
++.\" NS Po macro - Parenthesis open
++.de Po
++.if \\n(aC==0 .ds mN Po
++.ds qL \&(
++.eO \\$1 \\$2 \\$3 \\$4 \\$5 \\$6 \\$7 \\$8 \\$9
++..
++.\" NS Pc macro - Parenthesis close
++.de Pc
++.if \\n(aC==0 .ds mN Pc
++.ds qR \&)
++.eC \\$1 \\$2 \\$3 \\$4 \\$5 \\$6 \\$7 \\$8 \\$9
++..
++.\" NS Qo macro - Straight Double Quote open
++.de Qo
++.if \\n(aC==0 .ds mN Qo
++.ds qL \&\\*q
++.eO \\$1 \\$2 \\$3 \\$4 \\$5 \\$6 \\$7 \\$8 \\$9
++..
++.\" NS Qc macro - Straight Double Quote close
++.de Qc
++.if \\n(aC==0 .ds mN Qc
++.ds qR \&\\*q
++.eC \\$1 \\$2 \\$3 \\$4 \\$5 \\$6 \\$7 \\$8 \\$9
++..
++.\" NS So macro - Single Quote open
++.de So
++.if \\n(aC==0 .ds mN So
++.ds qL \&\\*(sL
++.eO \\$1 \\$2 \\$3 \\$4 \\$5 \\$6 \\$7 \\$8 \\$9
++..
++.\" NS Sc macro - Single Quote close
++.de Sc
++.if \\n(aC==0 .ds mN Sc
++.ds qR \&\\*(sR
++.eC \\$1 \\$2 \\$3 \\$4 \\$5 \\$6 \\$7 \\$8 \\$9
++..
++.\" NS Xo macro - Extend open (continue)
++.de Xo
++.if \\n(aC==0 .ds mN Xo
++.\" .nr mN 1
++.ds qL
++.eO \\$1 \\$2 \\$3 \\$4 \\$5 \\$6 \\$7 \\$8 \\$9
++..
++.\" NS Xe macro - Extend close (end)
++.de Xc
++.\" .nr mN 0
++.if \\n(aC==0 .ds mN Xc
++.ds qR
++.eC \\$1 \\$2 \\$3 \\$4 \\$5 \\$6 \\$7 \\$8 \\$9
++..
++.\" NS eO macro - enclose string open
++.\" NS oM register (extension possible)
++.de eO
++.nr oM \\n(oM+1
++.\" .tm eO last arg==A[\\n(aC]==\\*(A\\n(aC; aP==\\n(aP; oM==\\n(oM; dZ==\\n(dZ;
++.ie \\n(aC==0 \{\
++. ie \\n(.$>0 \{\
++. aV \\$1 \\$2 \\$3 \\$4 \\$5 \\$6 \\$7 \\$8 \\$9
++. as b1 \\*(qL
++. \}
++. el \{\
++. as b1 \\*(qL
++. if (\\n(dZ==0)&(\\n(sM==1) \{\
++. nr dZ \\n(dZ+1
++. ds b2 \\*(b1
++. ds b1
++. nr lK \\n(.c
++. ev 2
++. fi
++. di eB
++. \}
++. \}
++.\}
++.el \{\
++. as b1 \\*(qL
++.\}
++.ie \\n(aC>0 \{\
++. if \\n(aC>\\n(aP \{\
++. nr aP \\n(aP+1
++. ie \\n(C\\n(aP==1 .\\*(A\\n(aP
++. el \{\
++. nr aP \\n(aP-1
++. No
++. \}
++. \}
++. if \\n(aC==\\n(aP \{\
++. if \\n(tP==1 \{\
++.\" .tm SETTING Xt!!!
++. nr Xt 1
++. \}
++.\".\" . ds S0
++.\"CHANGED ds S0 \\*(iV
++. aY
++. \}
++.\}
++.el \{\
++. if \\n(oM>1 .as b1 \\*(sV
++.\}
++..
++.\"
++.\" NS eC macro - enclose string close
++.\" NS aa local register
++.de eC
++.nr oM \\n(oM-1
++.\" tm eC last arg==A[\\n(aC]==\\*(A\\n(aC; aP==\\n(aP; oM==\\n(oM; dZ==\\n(dZ;
++.as b1 \\*(qR
++.if \\n(aC==0 \{\
++. ie \\n(.$>0 \{\
++. aV \\$1 \\$2 \\$3 \\$4 \\$5 \\$6 \\$7 \\$8 \\$9
++. \}
++. el \{\
++. ie "\\*(xB"" \{\
++. pB
++. \}
++. el \{\
++. pB
++.\\*(L\\n(lC
++. nr Xt 0
++. ds xB
++. \}
++. \}
++.\}
++.if \\n(aC>0 \{\
++. ie \\n(aC==\\n(aP \{\
++. ie \\n(oM==0 \{\
++. aZ
++. \}
++. el .aY
++. \}
++. el \{\
++. nr aa \\n(aP+1
++. if \\n(C\\n(aa==2 .as b1 \\*(S\\n(aC
++.\" tm CURRENT arg (aP==\\*(A\\n(aP and ap+1==\\*(A\\n(aa) tP==\\n(tP Xt==\\n(Xt
++. rr aa
++. if \\n(tP>0 \{\
++.\" tm UNSETTING Xt==\\n(Xt!!!!
++. if \\n(Xt>0 .nr Xt \\n(Xt-1
++.\" tm NOW Xt==\\n(Xt!!!!
++. \}
++. No
++. \}
++.\}
++..
++.\"------------------------------------------------------------------------
++.\" NS Pf macro - Prefix (calls .pF)
++.de Pf
++.if \\n(aC==0 .ds mN Pf
++.ds qL \&\\$1
++.pF \\$2 \\$3 \\$4 \\$5 \\$6 \\$7 \\$8 \\$9
++..
++.\" NS pF macro - Prefix (for prefixing open quotes, brackets etc)
++.de pF
++.ie \\n(aC==0 \{\
++. as b1 \&\\*(qL
++. ie \\n(.$<2 \{\
++. tm Warning: Missing arguments - prefix .Pf)
++. pB
++. \}
++. el .aV \\$1 \\$2 \\$3 \\$4 \\$5 \\$6 \\$7 \\$8 \\$9
++.\}
++.el \{\
++. ie (\\n(aC-\\n(aP)>1 \{\
++. nr aP \\n(aP+1
++. as b1 \&\\*(A\\n(aP
++. \}
++. el .tm Warning: .Pf: trailing prefix (#\\n(.c)
++.\}
++.if \\n(aC>0 \{\
++. ie (\\n(aC-\\n(aP)==0 .aZ
++. el \{\
++. nr aP \\n(aP+1
++. c\\n(C\\n(aP
++. \}
++.\}
++..
++.\" NS Ns macro - remove space (space remove done by .aV or .fV)
++.de Ns
++.if \\n(aC==0 \{\
++. ds mN Ns
++. ie \\n(.$>0 .aV \\$1 \\$2 \\$3 \\$4 \\$5 \\$6 \\$7 \\$8 \\$9
++. el .tm Usage: .Ns must be called with arguments (#\\n(.c)
++.\}
++.No
++..
++.de Ap
++.if \\n(aC==0 \{\
++. ds mN Ap
++. tm Usage: Ap "cannot be first request on a line (no .Ap)" (#\\n(.c)
++.\}
++.as b1 \&'
++.No
++..
++.\" NS Hv macro - Hard (unpaddable) Space vector
++.\" NS iV string inter-vector space
++.\" NS sV string inter-argument space
++.de Hv
++.ds iV \\*(sV
++.ds sV \\*(hV
++..
++.\" NS Sv macro - Soft Space vector (troff limitation)
++.de Sv
++.ds sV \\*(iV
++..
++.\" NS Tv macro - Tab Space vector
++.de Tv
++.ds sV \\*(tV
++..
++.\" NS Sm macro - Space mode
++.\" NS sM register - default is one (space mode on)
++.nr sM 1
++.de Sm
++.if \\n(aC==0 \{\
++. ie \\n(.$==0 .tm "Usage: .Sm [off | on]" (#\\n(.c)
++. el \{\
++. ds mN Sm
++. aV \\$1 \\$2 \\$3 \\$4 \\$5 \\$6 \\$7 \\$8 \\$9
++. \}
++.\}
++.if \\n(aC>0 \{\
++. nr aP \\n(aP+1
++. if "\\*(A\\n(aP"on" \{\
++. ds sV \\*(iV
++. nr sM 1
++. \}
++. if "\\*(A\\n(aP"off" \{\
++. ds sV
++. rm S0 S1 S2 S3 S4 S5 S6 S7 S8 S9
++. nr sM 0
++. \}
++. ie \\n(aC>\\n(aP \{\
++. No
++. \}
++. el .aY
++.\}
++..
++.\"------------------------------------------------------------------------
++.\" Size and Argument type macros
++.\" NS aT macro - argument type
++.\" NS aU macro - argument type (same as .aT but uses A[1-9] strings
++.\" NS aT register argument type
++.if \n(.g \{\
++.de aT
++.nr aT 0
++.ie \\n(sW>2:(\A'\\$1'==0) \{\
++. nr aT 2
++.\}
++.el \{\
++. if \\n(sW==1 \{\
++. ie \\n(z\\$1>2 \{\
++. nr aT \\n(z\\$1
++. \}
++. el .nr aT 2
++. \}
++. if \\n(sW==2 \{\
++. ie \\n(\\$1 \{\
++. nr aT 1
++. \}
++. el .nr aT 2
++. \}
++.\}
++..
++.de aU
++.nr aT 0
++.aW \\$1
++.ie \\n(sW>2:(\A'\\*(A\\$1'==0) .nr aT 2
++.el \{\
++. if \\n(sW==1 \{\
++. ie \\n(z\\*(A\\$1>2 \{\
++. nr aT \\n(z\\*(A\\$1
++. \}
++. el .nr aT 2
++. \}
++. if \\n(sW==2 \{\
++. ie (\\n(\\*(A\\$1) \{\
++. nr aT 1
++. \}
++. el .nr aT 2
++. \}
++.\}
++..
++.\}
++.if !\n(.g \{\
++.de aT
++.nr aT 0
++.ie \\n(sW>2 \{\
++. nr aT 2
++.\}
++.el \{\
++. if \\n(sW==1 \{\
++. ie \\n(z\\$1>2 \{\
++. nr aT \\n(z\\$1
++. \}
++. el .nr aT 2
++. \}
++. if \\n(sW==2 \{\
++. ie \\n(\\$1 \{\
++. nr aT 1
++. \}
++. el .nr aT 2
++. \}
++.\}
++..
++.de aU
++.nr aT 0
++.aW \\$1
++.ie \\n(sW>2 .nr aT 2
++.el \{\
++. if \\n(sW==1 \{\
++. ie \\n(z\\*(A\\$1>2 \{\
++. nr aT \\n(z\\*(A\\$1
++. \}
++. el .nr aT 2
++. \}
++. if \\n(sW==2 \{\
++. ie (\\n(\\*(A\\$1) \{\
++. nr aT 1
++. \}
++. el .nr aT 2
++. \}
++.\}
++..
++.\}
++.\" NS s1 macro - set spacing for class type 1
++.\" NS s2 macro - set spacing for class type 2
++.\" NS s3 macro - set spacing for class type 3
++.\" NS s1 macro - set spacing for class type 1
++.\" NS s2 macro - set spacing for class type 2
++.\" NS s3 macro - set spacing for class type 3
++.\" NS s4 macro - set spacing for class type 4
++.\" NS S[0-9] string spacing
++.\" NS xX local register
++.\" NS aa local register
++.de s0
++.tm MDOC-ERROR: bogus type 0 (can't set space '\\*(A\\n(aC') (#\\n(.c)
++..
++.de s1
++.if \\n(\\*(A\\n(aC==3 \{\
++. nr xX \\n(aC-1
++. rm S\\n(xX
++. ds S\\n(aC \\*(sV
++.\}
++.if \\n(\\*(A\\n(aC==2 \{\
++. nr xX \\n(aC-1
++.\" this kludge can probably go away, but need to double check first
++. ie "\\*(A\\n(aC"Nb" .ds S\\n(xX \\*(hV
++. el .rm S\\n(xX
++.\}
++..
++.de s2
++.ds S\\n(aC \\*(sV
++..
++.de s3
++.if \\n(aC>1 \{\
++. nr xX \\n(aC-1
++. rm S\\n(xX
++.\}
++.ds S\\n(aC \\*(sV
++..
++.de s4
++.nr aa 0
++..
++.\" Class switches (on current argument aP)
++.\" NS c0 macro - catch errors (non-existent class type 0)
++.\" NS c1 macro - call request if type 1
++.\" NS c2 macro - call .No if type 2
++.\" NS c3 macro - call .No if type 3
++.\" NS c4 macro - call .No if type 4
++.de c0
++.tm MDOC-ERROR: bogus class 0 (can't determine '\\*(A\\n(aC') (#\\n(.c)
++..
++.de c1
++.\\*(A\\n(aP
++..
++.de c2
++.nr aP \\n(aP-1
++.No
++..
++.de c3
++.nr aP \\n(aP-1
++.No
++..
++.de c4
++.nr aP \\n(aP-1
++.No
++..
++.\" NS y1 macro - ignore if class 1
++.\" NS y2 macro - ignore if class 2
++.\" NS y3 macro - append if type 3
++.\" NS y4 macro - append if type 4
++.de y1
++.nr aa 1
++..
++.de y2
++.nr aa 1
++..
++.de y3
++.as b1 \\*(A\\n(aP
++.nr aP \\n(aP+1
++.n\\C\\n(aP
++..
++.de y4
++.as b1 \\*(A\\n(aP
++.nr aP \\n(aP+1
++.n\\C\\n(aP
++..
++.\"--------------------------------------------------------------------------
++.\" Ns Bf macro - Begin Font Mode (will be begin-mode/end-mode in groff & TeX)
++.\" Ns Ef macro - End Font Mode
++.de Bf
++.ds mN Bf
++.ie \\n(.$>0 \{\
++. nr bF \\n(.f
++. nr bZ \\n(.s
++. if "\\$1"Em" \&\\*(eM\c
++. if "\\$1"Li" \&\\*(lI\c
++. if "\\$1"Sy" \&\\*(sY\c
++. if "\\$1"-emphasis" \&\\*(eM\c
++. if "\\$1"-literal" \&\\*(lI\c
++. if "\\$1"-symbolic" \&\\*(sY\c
++.\}
++.el .tm Usage .Bf [Em | emphasis | Li | literal | Sy | symbolic] (#\\n(.c)
++..
++.de Ef
++.ds mN Ef
++.ie \\n(.$>0 .tm Usage .Ef (does not take arguments) (#\\n(.c)
++.el \&\f\\n(bF\s\\n(bZ
++..
++.\" Ns Bk macro - Begin Keep
++.\" Ns Ek macro - End Keep
++.\" Ns kS string - keep type
++.de Bk
++.ds mN Bk
++.ie \\n(.$==0 \{\
++.tm Usage: .Bk [-lines | -words] (#\\n(.c)
++.\}
++.el \{\
++. if !"\\*(kS"" .tm .Bk: nesting keeps not implemented yet. (#\\n(.c)
++. if "\\$1"-lines" .tm .Bd -lines: Not implemented yet. (#\\n(.c)
++. if "\\$1"-words" .Hv
++. ds kS \\$1
++.\}
++..
++.de Ek
++.ds mN Ek
++.ie \\n(.$>0 .tm Usage .Ek (does not take arguments) (#\\n(.c)
++.el \{\
++. if "\\*(kS"-lines" .tm .Bd -lines: Not implemented yet. (#\\n(.c)
++. if "\\*(kS"-words" .Sv
++. rm kS
++.\}
++..
++.\" NS Bd macro - Begin Display display-type [offset string]
++.\" NS Ed macro - end Display
++.\" NS O[0-9] registers - stack of indent
++.\" NS d[0-9] registers - display-type stack
++.de Bd
++.ds mN Bd
++.ie \\n(.$==0 \{\
++.tm Usage: .Bd [-literal | -filled | -ragged | -unfilled] [-offset [string]] [-compact] (#\\n(.c)
++.\}
++.el \{\
++. ds aa
++. nr bV 0
++. nr iD 0
++. nr dP \\n(dP+1
++. if "\\$1"-literal" \{\
++. nr iD \\n(iD+1
++. ds d\\n(dP dL
++. nr cF \\n(.f
++. nr cZ \\n(.s
++. ie t \{\&\\*(lI
++' ta 9n 18n 27n 36n 45n 54n 63n 72n
++. \}
++. el \{\
++' ta 8n 16n 24n 32n 40n 48n 56n 64n 72n
++. \}
++. nf
++. \}
++. if "\\$1"-filled" \{\
++. nr iD \\n(iD+1
++. ds d\\n(dP dF
++. br
++. \}
++. if "\\$1"-ragged" \{\
++. nr iD \\n(iD+1
++. ds d\\n(dP dR
++. na
++. \}
++. if "\\$1"-unfilled" \{\
++. nr iD \\n(iD+1
++. ds d\\n(dP dU
++. nf
++. \}
++.\" .tm Here is argc: \\n(.$ and here is iD \\n(iD
++. if ((\\n(iD>=1)&(\\n(.$>\\n(iD)) \{\
++. bV \\$2 \\$3 \\$4
++. \}
++. if \\n(O\\n(dP>0 'in \\n(.iu+\\n(O\\n(dPu
++. if (\\n(bV==0) \{\
++. if (\\n(nS==0) \{\
++. ie "\\*(d\\n(dP"dR" .sp \\n(dVu
++. el 'sp \\n(dVu
++. \}
++. \}
++. if \\n(cR==0 .ne 2v
++. nr bV 0
++. nr iD 0
++.\}
++..
++.\" NS bV macro - resolve remaining .Bd arguments
++.de bV
++.\" .tm in bV with args: \\$1 \\$2 \\$3
++.nr iD 1
++.ds bY
++.if "\\$1"-offset" \{\
++. ds bY \\$2
++. if "\\*(bY"left" \{\
++. nr iD \\n(iD+1
++. nr O\\n(dP 0
++. \}
++. if "\\*(bY"right" \{\
++. nr iD \\n(iD+1
++. nr O\\n(dP (\\n(.l/3)u
++. \}
++. if "\\*(bY"center" \{\
++. nr iD \\n(iD+1
++. nr O\\n(dP (\\n(.l-\\n(.i)/4u
++. \}
++. if "\\*(bY"indent" \{\
++. nr iD \\n(iD+1
++. nr O\\n(dP \\n(dIu
++. \}
++. if "\\*(bY"indent-two" \{\
++. nr iD \\n(iD+1
++. nr O\\n(dP \\n(dIu+\\n(dIu
++. \}
++. if \\n(iD==1 \{\
++. nr iD \\n(iD+1
++. sW "\\*(bY"
++. ie \\n(sW>2 \{\
++. ie ((\\*(bY>9n)&(\\*(bY<100n)) \{\
++. nr O\\n(dP \\*(bY
++. \}
++. el .nr O\\n(dP (\\n(sW)*\\n(fWu
++. \}
++. el \{\
++. if \\n(sW==2 .aT \\*(bY
++. ie \\n(aT==1 \{\
++. nr O\\n(dP \\n(\\*(bY
++. \}
++. el .nr O\\n(dP \\*(bY
++. \}
++. \}
++.\}
++.if "\\$1"-compact" \{\
++. nr bV 1
++.\}
++.if \\n(iD<\\n(.$ \{\
++. ie "\\*(bY"" \{\
++. bV \\$2 \\$3
++. \}
++. el \{\
++. bV \\$3
++. \}
++.\}
++..
++.\" NS Ed macro - end display
++.de Ed
++.ds mN Ed
++.br
++.if \\n(dP==0 .tm mdoc: Extraneous .Ed
++.if "\\*(d\\n(dP"dL" \{\
++. ft \\n(cF
++. fz \\n(cZ
++.\}
++.in \\n(.iu-\\n(O\\n(dPu
++.rr O\\n(dP
++.rm d\\n(dP
++.nr dP \\n(dP-1
++.fi
++.if t .ad
++..
++.\"--------------------------------------------------------------------------
++.\" NS Bl macro - begin list (.Bl list-type)
++.\" NS L[0-9] registers - stack of list types
++.de Bl
++.ie \\n(.$==0 \{\
++.tm Usage: .Bl [[-hang | -tag] [-width]] [ -item | -enum | -bullet | -diag] (#\\n(.c)
++.\}
++.el \{\
++. ds mN Bl
++. nr aP 0
++. nr lC \\n(lC+1
++. ds A1 \\$2
++. ds A2 \\$3
++. ds A3 \\$4
++. ds A4 \\$5
++. ds A5 \\$6
++. ds A6 \\$7
++. ds A7 \\$8
++. ds A8 \\$9
++. nr fV \\n(.$-1
++. if "\\$1"-hang" \{\
++. nr aP \\n(aP+1
++. ds L\\n(lC hL
++. nr w\\n(lC 6n
++. nr tC 1
++. \}
++. if "\\$1"-tag" \{\
++. nr aP \\n(aP+1
++. ds L\\n(lC tL
++. nr tC 1
++. \}
++. if "\\$1"-item" \{\
++. nr aP \\n(aP+1
++. ds L\\n(lC iT
++. nr tC 1
++. \}
++. if "\\$1"-enum" \{\
++. nr aP \\n(aP+1
++. ds L\\n(lC nU
++. nr w\\n(lC 3n
++. nr tC 1
++. \}
++. if "\\$1"-bullet" \{\
++. nr aP \\n(aP+1
++. ds L\\n(lC bU
++. nr w\\n(lC 2n
++. nr tC 1
++. \}
++. if "\\$1"-dash" \{\
++. nr aP \\n(aP+1
++. ds L\\n(lC hU
++. nr w\\n(lC 2n
++. nr tC 1
++. \}
++. if "\\$1"-hyphen" \{\
++. nr aP \\n(aP+1
++. ds L\\n(lC hU
++. nr w\\n(lC 2n
++. nr tC 1
++. \}
++. if "\\$1"-inset" \{\
++. nr aP \\n(aP+1
++. ds L\\n(lC lL
++. nr tC 1
++. \}
++. if "\\$1"-diag" \{\
++. nr aP \\n(aP+1
++. ds L\\n(lC mL
++. nr mL 1
++. \}
++. if "\\$1"-ohang" \{\
++. nr aP \\n(aP+1
++. ds L\\n(lC oL
++. nr tC 1
++. \}
++. if "\\$1"-column" \{\
++. nr aP \\n(aP+1
++. ds L\\n(lC cL
++. \}
++. ie \\n(aP==0 \{\
++. tm \\$1 \\$2 \\$3 \\$4 \\$5 \\$6 \\$7 \\$8 \\$9
++. tm Usage: .Bl [[-inset|-tag] -width] [-item|-enum|-bullet|-diag] (#\\n(.c)
++. \}
++. el \{\
++. tY
++. if (\\n(aP==1)&(\\n(aP<\\n(.$) \{\
++. nr aP 0
++. lV
++. if "\\*(L\\n(lC"cL" \{\
++. W\\n(wV
++. nr w\\n(lC 0
++' in -\\n(eWu
++. ie \\n(v\\n(lC==1 \{\
++. nr aa 0
++. \}
++. el \{\
++. sp \\n(dVu
++. \}
++. nf
++. nr wV 0
++. \}
++. \}
++. \}
++. nr aP 0
++.\" . ds b1
++. aY
++.\" .tm Here is L[\\n(lC]==\\*(L\\n(lC
++.\}
++..
++.if \n(.g \{\
++. nr i 10
++. while \ni<100 \{\
++. nr num!\nin 1
++. nr i +1
++. \}
++.\}
++.\" NS lV macro - resolve remaining .Bl arguments
++.de lV
++.nr aP \\n(aP+1
++.if \\n(fV>=\\n(aP \{\
++. nr iD 0
++. if "\\*(A\\n(aP"-compact" \{\
++. nr iD 1
++. nr v\\n(lC 1
++. \}
++. if "\\*(A\\n(aP"-width" \{\
++. nr iD 1
++. nr aP \\n(aP+1
++. nr tW 1
++. ds t\\n(lC TagwidtH
++. ds tS \\*(A\\n(aP
++. aW \\n(aP
++. ie \\n(sW>2 \{\
++. nr w\\n(lC (\\n(sW)*\\n(fWu
++. if \\n(sW==3 \{\
++. ie \\n(.g \{\
++. if \A'\\*(tS' .if r num!\\*(tS \{\
++. nr w\\n(lC \\*(tS
++. \}
++. \}
++. el \{\
++. if (\\*(tS>9n)&(\\*(tS<99n) \{\
++. nr w\\n(lC \\*(tSu
++. \}
++. \}
++. \}
++. \}
++. el \{\
++. aT \\*(tS
++. ie \\n(aT==1 \{\
++. nr w\\n(lC \\n(\\*(tS
++. \}
++. el \{\
++. nr w\\n(lC \\*(tSu
++. \}
++. \}
++. \}
++. if "\\*(A\\n(aP"-offset" \{\
++. nr iD 1
++. nr aP \\n(aP+1
++. ie "\\*(A\\n(aP"indent" \{\
++. nr o\\n(lC \\n(Dsu
++. \}
++. el \{\
++. ds tS \\*(A\\n(aP
++. aW \\n(aP
++. ie \\n(sW>2 \{\
++. nr o\\n(lC (\\n(sW)*\\n(fWu
++. ie \\n(.g \{\
++. if \A'\\*(tS' .if r num!\\*(tS \{\
++. nr o\\n(lC \\*(tS
++. \}
++. \}
++. el \{\
++. if (\\*(tS>9n)&(\\*(tS<100n) \{\
++. nr o\\n(lC \\*(tS
++. \}
++. \}
++. \}
++. el \{\
++. ie \\n(C\\n(aP==1 .nr o\\n(lC \\n(\\*(tS
++. el .nr o\\n(lC \\*(tS
++. \}
++. \}
++. \}
++. if \\n(iD==0 \{\
++. if "\\*(L\\n(lC"cL" \{\
++. nr wV \\n(wV+1
++. ds A\\n(wV \\*(A\\n(aP
++. \}
++. \}
++. if \\n(fV>\\n(aP .lV
++.\}
++..
++.\" NS El macro - end list
++.\" NS iD local register
++.de El
++.ie \\n(.$>0 \{\
++. tm Usage: .El (#\\n(.c)
++.\}
++.el \{\
++. ds mN El
++. nr iD 0
++. if "\\*(L\\n(lC"cL" \{\
++. nr iD 1
++. cC
++. \}
++. if "\\*(L\\n(lC"nU" \{\
++. nr nU 0
++. \}
++. if \\n(mL>0 \{\
++. nr iD 1
++. nr mL 0
++. tZ
++. nr lC \\n(lC-1
++. tY
++. \}
++. if "\\*(L\\n(lC"iT" \{\
++' in \\n(.iu-\\n(o\\n(lCu
++. tZ
++. nr lC \\n(lC-1
++. tY
++. nr iD 1
++. \}
++. if "\\*(L\\n(lC"oL" \{\
++' in \\n(.iu-\\n(o\\n(lCu
++. tZ
++. nr lC \\n(lC-1
++. tY
++. nr iD 1
++. \}
++. if "\\*(L\\n(lC"lL" \{\
++' in \\n(.iu-\\n(o\\n(lCu
++. tZ
++. nr lC \\n(lC-1
++. tY
++. nr iD 1
++. \}
++. if \\n(iD==0 \{\
++. lE
++. \}
++. br
++. nr iD 0
++.\}
++..
++.\" NS It macro - list item
++.\" NS iD local register
++.\" NS aA save pA font string for section FILES (no underline if nroff)
++.de It
++.if "\\*(L\\n(lC"" \{\
++. tm Usage .Bl -list-type [-width [string] | -compact | -offset [string]] (#\\n(.c)
++. tm .It \\$1 \\$2 \\$3 \\$4 \\$5 \\$6 \\$7 \\$8
++.\}
++.\" .tm Here is L[\\n(lC]==\\*(L\\n(lC
++.ne 3v
++.ie \\n(.$>0 \{\
++. ds mN It
++. ds b1
++. nr iD 0
++. ds A1 \\$1
++. ds A2 \\$2
++. ds A3 \\$3
++. ds A4 \\$4
++. ds A5 \\$5
++. ds A6 \\$6
++. ds A7 \\$7
++. ds A8 \\$8
++. ds A9 \\$9
++. nr fV \\n(.$
++. if "\\*(L\\n(lC"mL" \{\
++. nr iD 1
++. nr aP 0
++. aX
++. \\*(L\\n(lC
++. \}
++. if "\\*(L\\n(lC"cL" \{\
++. ds b1
++. nr aP 0
++. nr iD 1
++. \\*(L\\n(lC
++. \}
++. if "\\*(L\\n(lC"iT" \{\
++. nr aP 0
++. nr iD 1
++. \\*(L\\n(lC
++. \}
++. if \\n(iD==0 \{\
++. fV
++.\" tm ------------------------------------------------------------------------
++.\" tm It list-type==\\*(L\\n(lC, aP==\\n(aP
++.\" tm It beg arg(A[1])==\\*(A1; oM==\\n(oM; dZ==\\n(dZ; Xt==\\n(Xt; aC==\\n(aC
++. nr oM \\n(oM+1
++. nr tP 1
++. nr aP \\n(aP+1
++. nr tX \\n(C\\n(aP
++. ds tX \\*(A\\n(aP
++. if \\n(nF==1 \{\
++. ds aA \\*(pA
++. if n .ds pA \\*(nO
++. \}
++. ie \\n(C\\n(aP==1 \{\
++. \\*(A\\n(aP
++. \}
++. el \{\
++. nr aP \\n(aP-1
++. No
++. \}
++.\" tm in It here is b1==\\*(b1
++.\" tm It mid arg(A[1])==\\*(A1; oM==\\n(oM; dZ==\\n(dZ; Xt==\\n(Xt; aC==\\n(aC
++. ie \\n(Xt==1 .ds xB \&\\*(L\\n(lC
++. el .\\*(L\\n(lC
++. \}
++. nr iD 0
++.\}
++.el .\\*(L\\n(lC
++..
++.\" NS lL macro - .It item of list-type inset
++.de lL
++.lY
++.br
++\&\\*(b1
++.nr oM \\n(oM-1
++.nr tP 0
++.ds b1
++.aY
++'fi
++..
++.\" NS hL macro - .It item of list-type hanging label (as opposed to tagged)
++.de hL
++.lX
++.nr bb \\n(w\\n(lCu+\\n(lSu
++.ti -\\n(bbu
++.ie \w\a\\*(b1\au>=(\\n(w\\n(lCu) \&\\*(b1
++.el \&\\*(b1\h'|\\n(bbu'\c
++.nr oM \\n(oM-1
++.ds b1
++.nr tP 0
++.aY
++'fi
++..
++.\" NS oL macro - .It item of list-type overhanging label
++.de oL
++.lY
++\&\\*(b1
++.br
++.nr oM \\n(oM-1
++.ds b1
++.nr tP 0
++.aY
++'fi
++..
++.\" NS iT macro - .It item of list-type [empty label]
++.de iT
++.lY
++.br
++.\" .ds b1
++.aY
++'fi
++..
++.\" NS nU macro - Enumerated list
++.\" NS nU register count
++.\" NS hU macro - Hyphen paragraph list (sub bullet list)
++.\" NS bU macro - Bullet paragraph list
++.de nU
++.nr oM \\n(oM+1
++.nr nU \\n(nU+1
++.ds b1 \&\\n(nU.
++.uL
++..
++.de bU
++.nr oM \\n(oM+1
++.nr bU \\n(bU+1
++.ds b1 \&\\*(sY\&\(bu\fP
++.uL
++..
++.de hU
++.nr oM \\n(oM+1
++.nr bU \\n(bU+1
++.ds b1 \&\\*(sY\&\-\fP
++.uL
++..
++.\" NS uL macro - .It item of list-type enum/bullet/hyphen
++.de uL
++.lX
++.nr bb \\n(w\\n(lCu+\\n(lSu
++.ti -\\n(bbu
++.ie \w\a\\*(b1\au>=(\\n(w\\n(lCu) \&\\*(b1
++.el \&\\*(b1\h'|\\n(bbu'\c
++.nr oM \\n(oM-1
++.\" .nr dZ \\n(dZ+1
++.ds b1
++.nr tP 0
++.aY
++'fi
++..
++.\" NS mL macro - .It item of list-type diagnostic-message
++.de mL
++.nr cF \\n(.f
++.nr cZ \\n(.s
++.ie \\n(mL==1 \{\
++. nr zB \\n(.c
++. ie (\\n(zB-\\n(zA)>1 .Pp
++. el .br
++. nr zA \\n(zB
++. nr zB 0
++.\}
++.el \{\
++. nr zA \\n(.c
++. br
++.\}
++\&\\*(sY\\*(b1\f\\n(cF\s\\n(cZ\\*(lS\c
++.aY
++.ds b1
++'fi
++..
++.\" NS tL macro - .It item of list-type "tag"
++.de tL
++.\" tm in tL here is b1==\\*(b1
++.if \\n(tW==0 .lW
++.lX
++.nr bb \\n(w\\n(lCu+\\n(lSu
++.ti -\\n(bbu
++.ie (\w\a\\*(b1\au)>(\\n(w\\n(lCu) \{\&\\*(b1
++. br
++.\}
++.el \&\\*(b1\h'|\\n(bbu'\c
++.if \\n(nF==1 \{\
++. if n .ds pA \\*(aA
++.\}
++.nr oM \\n(oM-1
++.nr tP 0
++.\" .nr dZ \\n(dZ+1
++.ds b1
++.aY
++'fi
++..
++.\" NS lW macro - resolve unknown label/tag width (if .Bl [inset | tag] only)
++.de lW
++.if !"TagwidtH"\\*(t\\n(lC" \{\
++. ie \\n(tX==1 \{\
++. ds t\\n(lN \\*(tX
++. nr w\\n(lN \\n(\\*(tX
++. \}
++. el \{\
++. ds t\\n(lN No
++. nr w\\n(lN \\n(No
++. \}
++. if !"\\*(t\\n(lC"\\*(t\\n(lN" .nr tC 1
++.\}
++..
++.\" NS lX macro - set up vertical spacing (if compact) and offset+indent (all)
++.de lX
++.ie \\n(tC \{\
++. nr tC 0
++. nr tW 0
++. if \\n(v\\n(lC==0 .sp \\n(dVu
++. in \\n(.iu+\\n(w\\n(lCu+\\n(o\\n(lCu+\\n(lSu
++.\}
++.el \{\
++. ie \\n(v\\n(lC==1 \{\
++. nr aa 0
++. \}
++. el \{\
++. sp \\n(dVu
++. \}
++.\}
++.if !\\n(cR .ne 2v
++..
++.\" NS lY macro - set up vertical spacing (if compact) and offset+indent (all)
++.de lY
++.ie \\n(tC \{\
++. nr tC 0
++. nr tW 0
++. if \\n(v\\n(lC==0 .sp \\n(dVu
++. in \\n(.iu+\\n(o\\n(lCu
++.\}
++.el \{\
++. ie \\n(v\\n(lC==1 \{\
++. nr aa 0
++. \}
++. el \{\
++. sp \\n(dVu
++. \}
++.\}
++.if !\\n(cR .ne 2v
++..
++.\" NS tS temporary string
++.\" NS hL macro - hanging list function
++.\" NS tS temporary string
++.\" NS hL macro - hanging list function
++.\" NS lT macro - tagged list function
++.\" NS lE macro - list end function
++.\" NS tX string (initial string)
++.\" NS tX register (initial class)
++.\" NS tC parameter change flag
++.\" NS Xt save current list-type flag
++.\" NS lC register - list type stack counter
++.\" NS tP register tag flag (for diversions)
++.\" NS w[0-9] register tag stack (nested tags)
++.\" NS t[0-9] register tag string stack (nested tags)
++.\" NS o[0-9] register offset stack (nested tags)
++.\" NS v[0-9] register vertical tag break stack
++.\" NS h[0-9] register horizontal tag stack (continuous if 1, break if 0)
++.nr lC 0
++.nr wV 0
++.nr w1 0
++.nr o1 0
++.nr v1 0
++.nr h1 0
++.ds t\n(lC
++.de lE
++.\" IN lC o[\\n(lC]==\\n(o\\n(lC, w[\\n(lC]==\\n(w\\n(lC,
++.ie \\n(o\\n(lC>0 \{\
++' in \\n(.iu-(\\n(w\\n(lCu)-(\\n(o\\n(lCu)-\\n(lSu
++. rr o\\n(lC
++.\}
++.el 'in \\n(.iu-\\n(w\\n(lCu-\\n(lSu
++.if \\n(lC<=0 .tm Extraneous .El call (#\\n(.c)
++.tZ
++.nr lC \\n(lC-1
++.tY
++..
++.\" NS tY macro - set up next block for list
++.\" NS tZ macro - decrement stack
++.\" NS tY register (next possible lC value)
++.de tY
++.nr tY (\\n(lC+1)
++.nr w\\n(tY 0
++.nr h\\n(tY 0
++.nr o\\n(tY 0
++.ds t\\n(tY \\*(t\\n(lC
++.ds L\\n(tY
++.nr v\\n(tY 0
++..
++.de tZ
++.rm L\\n(tY
++.rr w\\n(tY
++.rr h\\n(tY
++.rr o\\n(tY
++.rm t\\n(tY
++.rr v\\n(tY
++.nr tY \\n(tY-1
++..
++.\" initial values
++.nr w1 0
++.nr o1 0
++.nr h1 0
++.ds t1
++.nr v1 0
++.nr tY 1
++.\" NS Xr macro - cross reference (man page only)
++.de Xr
++.if \\n(aC==0 \{\
++. ie \\n(.$==0 .tm Usage: .Xr manpage_name [section#] \\*(Pu (#\\n(.c)
++. el \{\
++. ds mN Xr
++. aV \\$1 \\$2 \\$3 \\$4 \\$5 \\$6 \\$7 \\$8 \\$9
++. \}
++.\}
++.if \\n(aC>\\n(aP \{\
++. nr aP \\n(aP+1
++. ie \\n(C\\n(aP==1 .tm Usage: .Xr manpage_name [section#] \\*(Pu (#\\n(.c)
++. el \{\
++. ie \\n(C\\n(aP>2 .y\\n(C\\n(aP
++. el \{\
++. as b1 \&\\*(xR\\*(A\\n(aP\fP\s0
++. if \\n(aC>\\n(aP \{\
++. nr aP \\n(aP+1
++. if \\n(C\\n(aP==2 \{\
++. as b1 \&(\\*(A\\n(aP)
++. nr aP \\n(aP+1
++. \}
++. if \\n(aC>=\\n(aP \{\
++. c\\n(C\\n(aP
++. \}
++. \}
++. \}
++. aZ
++. \}
++.\}
++..
++.\" NS Sx macro - cross section reference
++.de Sx
++.if \\n(aC==0 \{\
++. ie \\n(.$==0 .tm Sx Usage: .Sx Section Header \\*(Pu (#\\n(.c)
++. el \{\
++. ds mN Sx
++. aV \\$1 \\$2 \\$3 \\$4 \\$5 \\$6 \\$7 \\$8 \\$9
++. \}
++.\}
++.\}
++.if \\n(aC>\\n(aP \{\
++. nr aP \\n(aP+1
++. as b1 \\*(sX
++. nr cF \\n(.f
++. nr cZ \\n(.s
++. nR
++.\}
++..
++.\" NS cC macro - column-list end-list
++.\" NS eW macro - column indent width
++.\" NS cI register - column indent width
++.\" NS W[1-5] macro - establish tabs for list-type column
++.de cC
++'in \\n(.iu-\\n(o\\n(lCu-\\n(w\\n(lCu
++.ta .5i 1i 1.5i 2i 2.5i 3i 3.5i 4i 4.5i 5i 5.5i 6i 6.5i
++.fi
++.tZ
++.nr lC \\n(lC-1
++.tY
++..
++.de W1
++.ta \w\a\\*(A1 \au
++.nr eW \w\a\\*(A1 \au
++'in \\n(.iu+\\n(eWu+\\n(o\\n(lCu
++..
++.de W2
++.ta \w\a\\*(A1 \au +\w\a\\*(A2 \au
++.nr eW \w\a\\*(A1 \au+\w\a\\*(A2 \au
++'in \\n(.iu+\\n(eWu+\\n(o\\n(lCu
++..
++.de W3
++.ta \w\a\\*(A1 \au +\w\a\\*(A2 \au +\w\a\\*(A3 \au
++.nr eW \w\a\\*(A1 \au+\w\a\\*(A2 \au+\w\a\\*(A3 \au
++'in \\n(.iu+\\n(eWu+\\n(o\\n(lCu
++..
++.de W4
++.ta \w\a\\*(A1 \au +\w\a\\*(A2 \au +\w\a\\*(A3 \au +\w\a\\*(A4 \au
++.nr eW \w\a\\*(A1 \au+\w\a\\*(A2 \au +\w\a\\*(A3 \au +\w\a\\*(A4 \au
++'in \\n(.iu+\\n(eWu+\\n(o\\n(lCu
++..
++.de W5
++.ta \w\a\\*(A1 \au +\w\a\\*(A2 \au +\w\a\\*(A3 \au +\w\a\\*(A4 \au +\w\a\\*(A5 \au
++.nr eW \w\a\\*(A1 \au +\w\a\\*(A2 \au +\w\a\\*(A3 \au +\w\a\\*(A4 \au +\w\a\\*(A5 \au
++' in \\n(.iu+\\n(eWu+\\n(o\\n(lCu
++..
++.\" This is packed abnormally close, intercol width should be an option
++.de W6
++.ta \w\a\\*(A1 \au +\w\a\\*(A2 \au +\w\a\\*(A3 \au +\w\a\\*(A4 \au +\w\a\\*(A5 \au +\w\a\\*(A6
++.nr eW \w\a\\*(A1 \au +\w\a\\*(A2 \au +\w\a\\*(A3 \au +\w\a\\*(A4 \au +\w\a\\*(A5 \au +\w\a\\*(A6
++' in \\n(.iu+\\n(eWu+\\n(o\\n(lCu
++..
++.\" NS cL macro - column items
++.de cL
++.if \\n(w\\n(lC==0 .nr w\\n(lC \\n(eWu
++.if \\n(.u==0 \{\
++. fi
++' in \\n(.iu+\\n(eWu
++.\}
++.ti -\\n(eWu
++.fV
++.nr aP \\n(aP+1
++.ie \\n(aC>=\\n(aP \{\
++. if "\\*(A\\n(aP"Ta" \{\
++. nr jJ \\n(aP-1
++. rm S\\n(jJ
++. rr jJ
++. \}
++. c\\n(C\\n(aP
++.\}
++.el .tm Usage: .It column_string [Ta [column_string ...] ] (#\\n(.c)
++..
++.\" NS Ta macro - append tab (\t)
++.de Ta
++.ie \\n(aC>0 \{\
++. nr aP \\n(aP+1
++. ie \\n(aC>=\\n(aP \{\
++. if "\\*(A\\n(aP"Ta" \{\
++. nr jJ \\n(aP-1
++. rm S\\n(jJ
++. rr jJ
++. \}
++. as b1 \\t
++. c\\n(C\\n(aP
++. \}
++. el \{\
++. as b1 \\t\\c
++. rm S\\n(aP
++. pB
++. aY
++.\" . ds b1
++. \}
++.\}
++.el \{\
++. tm Usage: Ta must follow column entry: e.g. (#\\n(.c)
++. tm .It column_string [Ta [column_string ...] ]
++.\}
++..
++.\"
++.\" NS Dl macro - display (one line) literal
++.de Dl
++'ta .5i 1i 1.5i 2i 2.5i 3i 3.5i 4i 4.5i 5i 5.5i 6i 6.5i
++.in \\n(.iu+\\n(Dsu
++.ie \\n(aC==0 \{\
++. ie \\n(.$==0 \{\
++. tm Usage: .Dl argument ... (#\\n(.c)
++. \}
++. el \{\
++. ds mN Dl
++. ds A1 \\$1
++. ds A2 \\$2
++. ds A3 \\$3
++. ds A4 \\$4
++. ds A5 \\$5
++. ds A6 \\$6
++. ds A7 \\$7
++. ds A8 \\$8
++. ds A9 \\$9
++. nr fV \\n(.$
++. fV
++. Li
++. \}
++.\}
++.el \{\
++. tm Usage: .Dl not callable by other macros (#\\n(.c)
++.\}
++.in \\n(.iu-\\n(Dsu
++..
++.\"
++.\" NS D1 macro - display (one line)
++.de D1
++'ta .5i 1i 1.5i 2i 2.5i 3i 3.5i 4i 4.5i 5i 5.5i 6i 6.5i
++.in \\n(.iu+\\n(Dsu
++.ie \\n(aC==0 \{\
++. ie \\n(.$==0 \{\
++. tm Usage: .D1 argument ... (#\\n(.c)
++. \}
++. el \{\
++. ds mN D1
++. ds A1 \\$1
++. ds A2 \\$2
++. ds A3 \\$3
++. ds A4 \\$4
++. ds A5 \\$5
++. ds A6 \\$6
++. ds A7 \\$7
++. ds A8 \\$8
++. ds A9 \\$9
++. nr fV \\n(.$
++. fV
++. nr aP \\n(aP+1
++. ie \\n(C\\n(aP==1 .\\*(A\\n(aP
++. el .No
++. \}
++.\}
++.el \{\
++. tm Usage: .D1 not callable by other macros (#\\n(.c)
++.\}
++.in \\n(.iu-\\n(Dsu
++..
++.\" NS Ex macro - DEFUNCT
++.de Ex
++.tm Ex defunct, Use .D1: \\$1 \\$2 \\$3 \\$4 \\$5 \\$6 \\$7 \\$8 \\$9
++..
++.\"
++.\" NS Ex macro - DEFUNCT
++.de Ex
++.tm Ex defunct, Use .D1: \\$1 \\$2 \\$3 \\$4 \\$5 \\$6 \\$7 \\$8 \\$9
++..
++.\"
++.\" NS Vt macro - Variable type (for forcing old style variable declarations)
++.\" this is not done in the same manner as .Ot for fortrash - clean up later
++.de Vt
++.\" if a function declaration was the last thing given, want vertical space
++.if \\n(fD>0 \{\
++. Pp
++. nr fD 0
++.\}
++.\" if a subroutine was the last thing given, want vertical space
++.if \\n(fZ>0 \{\
++. ie \\n(fX==0 \{\
++. Pp
++. rs
++. \}
++. el .br
++.\}
++.nr fX \\n(fX+1
++.nr cF \\n(.f
++.nr cZ \\n(.s
++\\*(fT\&\\$1 \\$2 \\$3 \\$4 \\$5 \\$6 \\$7 \\$8 \\$9
++.ie \\n(oT==0 .br
++.el \&\ \&
++.ft \\n(cF
++.fs \\n(cZ
++..
++.\"
++.\" NS Ft macro - Function type
++.nr fZ 0
++.de Ft
++.if \\n(nS>0 \{\
++. if \\n(fZ>0 \{\
++. Pp
++. nr fD 0
++. nr fX 0
++. \}
++. if \\n(fD>0 \{\
++. Pp
++. nr fD 0
++. nr fX 0
++. \}
++. if \\n(fX>0 \{\
++. Pp
++. nr fX 0
++. \}
++. nr fY 1
++.\}
++.nr cF \\n(.f
++.nr cZ \\n(.s
++\&\\*(fT\\$1 \\$2 \\$3 \\$4 \\$5 \\$6 \\$7 \\$8 \\$9
++.ft \\n(cF
++.fs \\n(cZ
++.\" .br
++..
++.\"
++.\" NS Ot macro - Old Function type (fortran - no newline)
++.\" Ns oT register
++.nr oT 0
++.de Ot
++.nr oT 1
++.if \\n(nS>0 \{\
++. if \\n(fZ>0 \{\
++. Pp
++. nr fD 0
++. nr fX 0
++. \}
++. if \\n(fD>0 \{\
++. Pp
++. nr fD 0
++. nr fX 0
++. \}
++. if \\n(fX>0 \{\
++. Pp
++. nr fX 0
++. \}
++. nr fY 1
++.\}
++.if \\n(.$==4 .as b1 \&\\*(fT\&\\$1 \\$2 \\$3 \\$4
++.if \\n(.$==3 .as b1 \&\\*(fT\&\\$1 \\$2 \\$3
++.if \\n(.$==2 .as b1 \&\\*(fT\&\\$1 \\$2
++.if \\n(.$==1 .as b1 \&\\*(fT\&\\$1
++.as b1 \&\ \fP
++..
++.\"
++.\" NS Fa macro - Function arguments
++.de Fa
++.if \\n(aC==0 \{\
++. ie \\n(.$==0 .tm Usage: .Fa Function Arguments ... \\*(Pu (#\\n(.c)
++. el \{\
++. ds mN Fa
++. ds A1 \\$1
++. ds A2 \\$2
++. ds A3 \\$3
++. ds A4 \\$4
++. ds A5 \\$5
++. ds A6 \\$6
++. ds A7 \\$7
++. ds A8 \\$8
++. ds A9 \\$9
++. nr fV \\n(.$
++. fV
++. \}
++.\}
++.ie \\n(fC>0 \{\
++. fC
++.\}
++.el \{\
++. if \\n(aC>\\n(aP \{\
++. as b1 \\*(fA
++. nr aP \\n(aP+1
++. nr cF \\n(.f
++. nr cZ \\n(.s
++. nR
++. if \\n(nS>0 \{\
++. if \\n(fZ>0 .br
++. \}
++. \}
++.\}
++..
++.\" NS fC macro - interal .Fa for .FO and .Fc
++.de fC
++.ie \\n(aC>\\n(aP \{\
++. nr aP \\n(aP+1
++.\" . nr aa \\n(aP
++.\" . if \\n(nS>0 \{\
++. ds Fb
++. nr fB 0
++. nr Fb 0
++. fB \\*(A\\n(aP
++. if \\n(fB>1 \{\
++. rm A\\n(aP
++. rn Fb A\\n(aP
++. \}
++.\" . \}
++. if \\n(fC>1 \{\
++. as b1 \&\f\\n(cF\s\\n(cZ,\\*(S\\n(aP\\*(fA\\*(A\\n(aP\fP\s0
++.\" . as b1 \&\\,\\*(S\\n(aP\fP\s0\\*(fA\\*(A\\n(aP\fP\s0
++. \}
++. if \\n(fC==1 \{\
++. as b1 \&\|\\*(fA\\*(A\\n(aP\fP\s0
++. \}
++. nr fC \\n(fC+1
++. fC
++.\}
++.el \{\
++. aY
++.\}
++..
++.\" NS Fn macro - functions
++.\" NS fY register - dick with old style function declarations (fortran)
++.\" NS fZ register - break a line when more than one function in a synopsis
++.\"
++.de Fn
++.if \\n(aC==0 \{\
++. ie \\n(.$==0 .tm Usage: .Fn function_name function_arg(s) ... \\*(Pu (#\\n(.c)
++. el \{\
++. ds mN Fn
++. ds A1 \\$1
++. ds A2 \\$2
++. ds A3 \\$3
++. ds A4 \\$4
++. ds A5 \\$5
++. ds A6 \\$6
++. ds A7 \\$7
++. ds A8 \\$8
++. ds A9 \\$9
++. nr fV \\n(.$
++. fV
++. \}
++.\}
++.if \\n(nS>0 \{\
++.\" if there is/has been more than one subroutine declaration
++. if \\n(fY==0 \{\
++. if \\n(fZ>0 \{\
++. Pp
++. nr fX 0
++. nr fD 0
++. \}
++. \}
++. if \\n(fY==1 \{\
++. br
++. nr fX 0
++. nr fD 0
++. nr fY 0
++. \}
++. if \\n(fD>0 \{\
++. Pp
++. nr fX 0
++. \}
++. if \\n(fX>0 \{\
++. Pp
++. nr fD 0
++. \}
++. nr fZ \\n(fZ+1
++. nr fY 0
++. rs
++. ie \\n(nS>1 .br
++. el \{\
++. if \\n(iS==0 \{\
++. nr iS ((8)*\\n(fW)u
++. \}
++. \}
++. in +\\n(iSu
++. ti -\\n(iSu
++. nr nS \\n(nS+1
++.\}
++.if \\n(aC>\\n(aP \{\
++. nr aP \\n(aP+1
++. nr cF \\n(.f
++. nr cZ \\n(.s
++. as b1 \\*(fN\\*(A\\n(aP\fP\s0\\*(lp
++. ie \\n(aC>\\n(aP \{\
++. as b1 \\*(fA
++. nr aP \\n(aP+1
++. f\\n(C\\n(aP
++. \}
++. el \{\
++. as b1 \|\\*(rp
++. aZ
++. \}
++. if \\n(nS>0 \{\
++. in -\\n(iSu
++. \}
++.\}
++..
++.\"
++.\" NS f1 macro - class switch
++.\" NS f2 macro - handle function arguments
++.\" NS f3 macro - punctuation
++.\" NS f4 macro - write out function
++.de f1
++.as b1 \\*(rp\f\\n(cF\s\\n(cZ
++.\\*(A\\n(aP
++..
++.de f2
++.if \\n(nS>0 \{\
++. ds Fb
++. nr fB 0
++. nr Fb 0
++. fB \\*(A\\n(aP
++. if \\n(fB>1 \{\
++. rm A\\n(aP
++. rn Fb A\\n(aP
++. \}
++.\}
++.as b1 \\*(A\\n(aP
++.ie \\n(aC>\\n(aP \{\
++. nr aa \\n(aP
++. nr aP \\n(aP+1
++. if \\n(C\\n(aP==2 \{\
++. as b1 \&\|\f\\n(cF\s\\n(cZ,\\*(S\\n(aa\fP\s0\|
++. \}
++. f\\n(C\\n(aP
++.\}
++.el \{\
++. as b1 \\*(rp\f\\n(cF\s\\n(cZ
++. aZ
++.\}
++..
++.de f3
++.as b1 \\*(rp\f\\n(cF\s\\n(cZ\\*(A\\n(aP
++.ie \\n(aC>\\n(aP \{\
++. No
++.\}
++.el .aZ
++..
++.de f4
++.as b1 \\*(rp\f\\n(cF\s\\n(cZ\\*(S\\n(aP\\*(A\\n(aP
++.ie \\n(aC>\\n(aP \{\
++. nr aP \\n(aP+1
++. No
++.\}
++.el .aZ
++..
++.de Fo
++.hy 0
++.if \\n(aC==0 \{\
++. ie \\n(.$==0 .tm Usage: .Fo function_name
++. el \{\
++. ds mN Fo
++. ds A1 \\$1
++. ds A2 \\$2
++. ds A3 \\$3
++. ds A4 \\$4
++. ds A5 \\$5
++. ds A6 \\$6
++. ds A7 \\$7
++. ds A8 \\$8
++. ds A9 \\$9
++. nr fV \\n(.$
++. fV
++. \}
++.\}
++.if \\n(nS>0 \{\
++.\" if there is/has been more than one subroutine declaration
++. if \\n(fY==0 \{\
++. if \\n(fZ>0 \{\
++. Pp
++. nr fX 0
++. nr fD 0
++. \}
++. \}
++. if \\n(fY==1 \{\
++. br
++. nr fX 0
++. nr fD 0
++. nr fY 0
++. \}
++. if \\n(fD>0 \{\
++. Pp
++. nr fX 0
++. \}
++. if \\n(fX>0 \{\
++. Pp
++. nr fD 0
++. \}
++. nr fZ \\n(fZ+1
++. nr fY 0
++. rs
++. ie \\n(nS>1 .br
++. el \{\
++. if \\n(iS==0 \{\
++. nr iS ((8)*\\n(fW)u
++. \}
++. \}
++. in +\\n(iSu
++. ti -\\n(iSu
++. nr nS \\n(nS+1
++.\}
++.if \\n(aC>\\n(aP \{\
++. nr oM \\n(oM+1
++. nr fC 1
++. nr aP \\n(aP+1
++. nr cF \\n(.f
++. nr cZ \\n(.s
++. as b1 \\*(fN\\*(A\\n(aP\fP\s0\\*(lp
++. aY
++.\}
++..
++.de Fc
++.if \\n(aC==0 \{\
++. if \\n(.$>0 \{\
++. ds mN Fo
++. ds A1 \\$1
++. ds A2 \\$2
++. ds A3 \\$3
++. ds A4 \\$4
++. ds A5 \\$5
++. ds A6 \\$6
++. ds A7 \\$7
++. ds A8 \\$8
++. ds A9 \\$9
++. nr fV \\n(.$
++. fV
++. \}
++.\}
++.nr fC 0
++.nr oM \\n(oM-1
++.as b1 \|\\*(rp
++.ie \\n(aC>\\n(aP \{\
++. nr aP \\n(aP+1
++. \\*(A\\n(aP
++.\}
++.el \{\
++. aZ
++.\}
++.if \\n(nS>0 \{\
++. in -\\n(iSu
++.\}
++.hy
++..
++.\" NS fb macro - if SYNOPSIS, set hard space inbetween function args
++.\" NS fb register - count of words in a function argument
++.\" NS Fb register - counter
++.\" NS Fb string - temporary string
++.de fB
++.\" .tm fB==\\n(fB, Fb==\\n(Fb, 1==\\$1 2==\\$2 3==\\$3 4==\\$4 5==\\$5 6==\\$6
++.if \\n(fB==0 \{\
++. nr fB \\n(.$
++. nr Fb 0
++. ds Fb
++.\}
++.nr Fb \\n(Fb+1
++.as Fb \&\\$1
++.if \\n(Fb<\\n(fB \{\
++. as Fb \&\\*(hV
++. fB \\$2 \\$3 \\$4 \\$5 \\$6 \\$7 \\$8 \\$9
++.\}
++..
++.\" NS Fc - Function close - not implemented yet
++.\" NS Fo - Function open - not implemented yet
++.\"
++.\" Very crude references, stash all reference info into strings (usual
++.\" use of b1 buffer, then b1 contents copied to string of retrievable
++.\" naming convention), print out reference on .Re request and clean up.
++.\" Ordering very limited, no fancy citations, but can do articles, journals
++.\" and books - need to add several missing options (like city etc).
++.\" should be able to grab a refer entry, massage it a wee bit (prefix
++.\" a `.' to the %[A-Z]) and not worry (ha!)
++.\"
++.\" NS Rs macro - Reference Start
++.\" NS rS register - Reference Start flag
++.\" NS rS string - Reference Start buffer name for next save (of b1 buffer)
++.de Rs
++.nr rS 1
++.rC
++.if \\n(nA==1 .Pp
++.nr Kl 0
++..
++.\" NS Re macro - Reference End
++.de Re
++.rZ
++.rC
++.nr rS 0
++..
++.\" NS rC macro - reference cleanup
++.de rC
++.nr uK 0
++.nr jK 0
++.nr nK 0
++.nr oK 0
++.nr qK 0
++.nr rK 0
++.nr tK 0
++.nr vK 0
++.nr dK 0
++.nr pK 0
++.nr bK 0
++.ds rS
++.rm U1 U2 U3 U4 U5 U6 U7 U8
++.rm uK jK nK oK rK qK tK vK dK pK bK
++..
++.\" NS rZ macro - reference print
++.de rZ
++.if \\n(uK \{\&\\*(U1,
++. nr aK 1
++. if (\\n(uK>1 \{\
++. aK
++. \}
++. nr Kl -\\n(uK
++.\}
++.if \\n(tK \{\
++. nr Kl \\n(Kl-1
++. if \\n(Kl==0 \{\
++. ie (\\n(jK==1):(\\n(bK==1) \{\&\\*q\\*(tK\\*q.
++. \}
++. el \{\&\\*(eM\\*(tK\\*(nO.
++. \}
++. \}
++. if \\n(Kl>0 \{\
++. ie (\\n(jK==1):(\\n(bK==1) \{\&\\*q\\*(tK\\*q,
++. \}
++. el \{\&\\*(eM\\*(tK\\*(nO,
++. \}
++. \}
++.\}
++.if \\n(bK \{\
++. nr Kl \\n(Kl-1
++. if \\n(Kl==0 \&\\*(eM\\*(bK\\*(nO.
++. if \\n(Kl>0 \&\\*(eM\\*(bK\\*(nO,
++.\}
++.if \\n(jK \{\
++. nr Kl \\n(Kl-1
++. if \\n(Kl==0 \&\\*(eM\\*(jK\\*(nO.
++. if \\n(Kl>0 \&\\*(eM\\*(jK\\*(nO,
++.\}
++.if \\n(rK \{\
++. nr Kl \\n(Kl-1
++. if \\n(Kl==0 \&\\*(rK.
++. if \\n(Kl>0 \&\\*(rK,
++.\}
++.if \\n(nK \{\
++. nr Kl \\n(Kl-1
++. if \\n(Kl==0 \&\\*(nK.
++. if \\n(Kl>0 \&\\*(nK,
++.\}
++.if \\n(vK \{\
++. nr Kl \\n(Kl-1
++. if \\n(Kl==0 \&\\*(vK.
++. if \\n(Kl>0 \&\\*(vK,
++.\}
++.if \\n(pK \{\
++. nr Kl \\n(Kl-1
++. if \\n(Kl==0 \&\\*(pK.
++. if \\n(Kl>0 \&\\*(pK,
++.\}
++.if \\n(qK \{\
++. nr Kl \\n(Kl-1
++. if \\n(Kl==0 \&\\*(qK.
++. if \\n(Kl>0 \&\\*(qK,
++.\}
++.if \\n(dK \{\
++. nr Kl \\n(Kl-1
++. if \\n(Kl==0 \&\\*(dK.
++. if \\n(Kl>0 \&\\*(dK,
++.\}
++.if \\n(oK \{\
++. nr Kl \\n(Kl-1
++. if \\n(Kl==0 \&\\*(oK.
++. if \\n(Kl>0 \&\\*(oK,
++.\}
++.if \\n(Kl>0 .tm unresolved reference problem
++..
++.\" NS aK macro - print out reference authors
++.de aK
++.nr aK \\n(aK+1
++.ie (\\n(uK-\\n(aK)==0 \{\&and \\*(U\\n(aK,
++.\}
++.el \{\&\\*(U\\n(aK,
++. aK
++.\}
++..
++.\" NS %A macro - reference author(s)
++.\" NS uK register - reference author(s) counter
++.\" NS U[1-9] strings - reference author(s) names
++.de %A
++.if \\n(aC==0 \{\
++. ie \\n(.$==0 .tm Usage: .%A Author_name (#\\n(.c)
++. el \{\
++. nr uK \\n(uK+1
++. nr Kl \\n(Kl+1
++. ds rS U\\n(uK
++. ds mN %A
++. aV \\$1 \\$2 \\$3 \\$4 \\$5 \\$6 \\$7 \\$8 \\$9
++. \}
++.\}
++.if \\n(aC>\\n(aP \{\
++. nr aP \\n(aP+1
++. nr cF \\n(.f
++. nr cZ \\n(.s
++. rR
++.\}
++..
++.\" NS %B macro - [reference] Book Name
++.\" NS bK string - Book Name
++.\" NS bK register - Book Name flag
++.de %B
++.if \\n(aC==0 \{\
++. ie \\n(.$==0 .tm Usage: .%B Book Name (#\\n(.c)
++. el \{\
++. ds mN %B
++. if \\n(rS>0 \{\
++. nr bK \\n(bK+1
++. nr Kl \\n(Kl+1
++. ds rS bK
++. \}
++. ds A1 \\$1
++. ds A2 \\$2
++. ds A3 \\$3
++. ds A4 \\$4
++. ds A5 \\$5
++. ds A6 \\$6
++. ds A7 \\$7
++. ds A8 \\$8
++. ds A9 \\$9
++. nr fV \\n(.$
++. fV
++. \}
++.\}
++.if \\n(aC>\\n(aP \{\
++. nr aP \\n(aP+1
++. nr cF \\n(.f
++. nr cZ \\n(.s
++. ie \\n(rS==0 \{\
++. as b1 \&\\*(eM
++. nR
++. \}
++. el .rR
++.\}
++..
++.\" NS %D macro - [reference] Date
++.\" NS dK string - Date String
++.\" NS dK register - Date flag
++.de %D
++.if \\n(aC==0 \{\
++. ie \\n(.$==0 .tm Usage: .%D Date (#\\n(.c)
++. el \{\
++. ds mN %D
++. nr dK \\n(dK+1
++. nr Kl \\n(Kl+1
++. ds rS dK
++. ds A1 \\$1
++. ds A2 \\$2
++. ds A3 \\$3
++. ds A4 \\$4
++. ds A5 \\$5
++. ds A6 \\$6
++. ds A7 \\$7
++. ds A8 \\$8
++. ds A9 \\$9
++. nr fV \\n(.$
++. fV
++. \}
++.\}
++.if \\n(aC>\\n(aP \{\
++. nr aP \\n(aP+1
++. nr cF \\n(.f
++. nr cZ \\n(.s
++. rR
++.\}
++..
++.\" NS %J macro - [reference] Journal Name
++.\" NS jK register - [reference] Journal Name flag
++.\" NS jK string - [reference] Journal Name
++.de %J
++.if \\n(aC==0 \{\
++. ie \\n(.$==0 .tm Usage: .%J Journal Name (#\\n(.c)
++. el \{\
++. ds mN %J
++. nr jK \\n(jK+1
++. ds rS jK
++. nr Kl \\n(Kl+1
++. ds A1 \\$1
++. ds A2 \\$2
++. ds A3 \\$3
++. ds A4 \\$4
++. ds A5 \\$5
++. ds A6 \\$6
++. ds A7 \\$7
++. ds A8 \\$8
++. ds A9 \\$9
++. nr fV \\n(.$
++. fV
++. \}
++.\}
++.if \\n(aC>\\n(aP \{\
++. nr aP \\n(aP+1
++. nr cF \\n(.f
++. nr cZ \\n(.s
++. rR
++.\}
++..
++.\" NS %N macro - [reference] issue number
++.\" NS nK register - [reference] issue number flag
++.\" NS nK string - [reference] issue number
++.de %N
++.if \\n(aC==0 \{\
++. ie \\n(.$==0 .tm Usage: .%N issue number (#\\n(.c)
++. el \{\
++. nr nK \\n(nK+1
++. nr Kl \\n(Kl+1
++. ds rS nK
++. ds mN %N
++. aV \\$1 \\$2 \\$3 \\$4 \\$5 \\$6 \\$7 \\$8 \\$9
++. \}
++.\}
++.if \\n(aC>\\n(aP \{\
++. nr aP \\n(aP+1
++. nr cF \\n(.f
++. nr cZ \\n(.s
++. rR
++.\}
++..
++.\" NS %O macro - [reference] optional information
++.\" NS oK register - [reference] optional information flag
++.\" NS oK string - [reference] optional information
++.de %O
++.if \\n(aC==0 \{\
++. ie \\n(.$==0 .tm Usage: .%O optional information ... \\*(Pu (#\\n(.c)
++. el \{\
++. ds mN %O
++. nr oK \\n(oK+1
++. nr Kl \\n(Kl+1
++. ds rS oK
++. ds A1 \\$1
++. ds A2 \\$2
++. ds A3 \\$3
++. ds A4 \\$4
++. ds A5 \\$5
++. ds A6 \\$6
++. ds A7 \\$7
++. ds A8 \\$8
++. ds A9 \\$9
++. nr fV \\n(.$
++. fV
++. \}
++.\}
++.if \\n(aC>\\n(aP \{\
++. nr aP \\n(aP+1
++. nr cF \\n(.f
++. nr cZ \\n(.s
++. rR
++.\}
++..
++.\" NS %P macro - [reference] page numbers
++.\" NS pK register - [reference] page number flag
++.\" NS pK string - [reference] page number
++.de %P
++.if \\n(aC==0 \{\
++. ie \\n(.$==0 .tm Usage: .%P page numbers ... \\*(Pu (#\\n(.c)
++. el \{\
++. ds mN %P
++. nr pK \\n(pK+1
++. nr Kl \\n(Kl+1
++. ds rS pK
++. ds A1 \\$1
++. ds A2 \\$2
++. ds A3 \\$3
++. ds A4 \\$4
++. ds A5 \\$5
++. ds A6 \\$6
++. ds A7 \\$7
++. ds A8 \\$8
++. ds A9 \\$9
++. nr fV \\n(.$
++. fV
++. \}
++.\}
++.if \\n(aC>\\n(aP \{\
++. nr aP \\n(aP+1
++. nr cF \\n(.f
++. nr cZ \\n(.s
++. rR
++.\}
++..
++.\" NS %Q macro - Corporate or Foreign Author
++.\" NS qK string - Corporate or Foreign Author
++.\" NS qK register - Corporate or Foreign Author flag
++.de %Q
++.if \\n(aC==0 \{\
++. ie \\n(.$==0 .tm Usage: .%Q Corporate or Foreign Author (#\\n(.c)
++. el \{\
++. ds mN %Q
++. nr qK \\n(qK+1
++. nr Kl \\n(Kl+1
++. ds rS qK
++. ds A1 \\$1
++. ds A2 \\$2
++. ds A3 \\$3
++. ds A4 \\$4
++. ds A5 \\$5
++. ds A6 \\$6
++. ds A7 \\$7
++. ds A8 \\$8
++. ds A9 \\$9
++. nr fV \\n(.$
++. fV
++. \}
++.\}
++.if \\n(aC>\\n(aP \{\
++. nr aP \\n(aP+1
++. nr cF \\n(.f
++. nr cZ \\n(.s
++. rR
++.\}
++..
++.\" NS %R macro - [reference] report name
++.\" NS rK string - [reference] report name
++.\" NS rK register - [reference] report flag
++.de %R
++.if \\n(aC==0 \{\
++. ie \\n(.$==0 .tm Usage: .%R reference report (#\\n(.c)
++. el \{\
++. ds mN %R
++. nr rK \\n(rK+1
++. nr Kl \\n(Kl+1
++. ds rS rK
++. ds A1 \\$1
++. ds A2 \\$2
++. ds A3 \\$3
++. ds A4 \\$4
++. ds A5 \\$5
++. ds A6 \\$6
++. ds A7 \\$7
++. ds A8 \\$8
++. ds A9 \\$9
++. nr fV \\n(.$
++. fV
++. \}
++.\}
++.if \\n(aC>\\n(aP \{\
++. nr aP \\n(aP+1
++. nr cF \\n(.f
++. nr cZ \\n(.s
++. rR
++.\}
++..
++.\" NS %T macro - reference title
++.\" NS tK string - reference title
++.\" NS tK register - reference title flag
++.de %T
++.if \\n(aC==0 \{\
++. ie \\n(.$==0 .tm Usage: .%T (#\\n(.c)
++. el \{\
++. ds mN %T
++. if \\n(rS>0 \{\
++. nr tK \\n(tK+1
++. nr Kl \\n(Kl+1
++. ds rS tK
++. \}
++. ds A1 \\$1
++. ds A2 \\$2
++. ds A3 \\$3
++. ds A4 \\$4
++. ds A5 \\$5
++. ds A6 \\$6
++. ds A7 \\$7
++. ds A8 \\$8
++. ds A9 \\$9
++. nr fV \\n(.$
++. fV
++. \}
++.\}
++.if \\n(aC>\\n(aP \{\
++.\" . ie \\n(jS==1 \{\
++.\" . nr cF \\n(.f
++.\" . nr cZ \\n(.s
++.\" . ds qL \&\\*(Lq\\*(rA
++.\" . ds qR \&\\*(Rq\f\\n(cF\s\\n(cZ
++.\" . En \\$1 \\$2 \\$3 \\$4 \\$5 \\$6 \\$7 \\$8 \\$9
++.\" . \}
++.\" . el \{\
++. nr aP \\n(aP+1
++. nr cF \\n(.f
++. nr cZ \\n(.s
++. ie \\n(rS==0 \{\
++. as b1 \&\\*(eM
++. nR
++. \}
++. el .rR
++.\" . \}
++.\}
++..
++.\" NS %V macro - reference volume
++.\" NS vK string - reference volume
++.\" NS vK register - reference volume flag
++.de %V
++.if \\n(aC==0 \{\
++. ie \\n(.$==0 .tm Usage: .%V Volume , ... \\*(Pu (#\\n(.c)
++. el \{\
++. ds mN %V
++. nr vK \\n(vK+1
++. nr Kl \\n(Kl+1
++. ds rS vK
++. aV \\$1 \\$2 \\$3 \\$4 \\$5 \\$6 \\$7 \\$8 \\$9
++. \}
++.\}
++.if \\n(aC>\\n(aP \{\
++. nr aP \\n(aP+1
++. nr cF \\n(.f
++. nr cZ \\n(.s
++. rR
++.\}
++..
++.\" NS rR macro - reference recursion routine
++.\" NS jM local register
++.\" NS jN local register
++.de rR
++.hy 0
++.nr jM \\n(C\\n(aP
++.ie \\n(jM==1 \{\
++.\" . as b1 \&\f\\n(cF\s\\n(cZ
++. ie "\\*(A\\n(aP"Tn" \{\
++. nN
++. \}
++. el \{\
++. if \\n(aC>8 .tm Usage: \\*(mN - maximum 8 arguments (#\\n(.c)
++. aI rR 1
++. \\*(A\\n(aP
++. \}
++.\}
++.el \{\
++. nr jN \\n(aP
++. ie \\n(jM==2 .as b1 \&\\*(A\\n(aP
++. el .as b1 \&\\*(A\\n(aP
++.\" . el .as b1 \&\f\\n(cF\s\\n(cZ\\*(A\\n(aP\fP\s0
++. ie \\n(aC==\\n(aP \{\
++.\" . as b1 \&\f\\n(cF\s\\n(cZ
++. rD
++. \}
++. el \{\
++. nr aP \\n(aP+1
++. as b1 \&\\*(S\\n(jN
++. rR
++. \}
++.\}
++.rr jM jN
++..
++.\" NS rD macro - save b1 buffer in to appropriate name
++.de rD
++.as \\*(rS \\*(b1
++.ds b1
++.ds rS
++.aY
++..
++.\" NS Hf macro - source include header files.
++.de Hf
++.Pp
++File:
++.Pa \\$1
++.Pp
++.nr cF \\n(.f
++.nr cZ \\n(.s
++.ie t \{\
++\&\\*(lI
++.br
++.ta +9n 18n 27n 36n 45n 54n 63n 72n
++.\}
++.el \{\
++.ta +8n 16n 24n 32n 40n 48n 56n 64n 72n
++.\}
++.nf
++.so \\$1
++.fi
++.ft \\n(cF
++.fz \\n(cZ
++.Pp
++..
++.\" NS An macro - author name
++.\" NS aN register
++.nr aN 0
++.de An
++.if \\n(nY==1 \{\
++. ie \\n(aN==1 \{\
++. br
++. \}
++. el \{\
++. nr aN 1
++. \}
++.\}
++.if \\n(aC==0 \{\
++. ie \\n(.$==0 .tm Usage: .An author_name ... \\*(Pu (#\\n(.c)
++. el \{\
++. ds mN An
++. aV \\$1 \\$2 \\$3 \\$4 \\$5 \\$6 \\$7 \\$8 \\$9
++. \}
++.\}
++.if \\n(aC>\\n(aP \{\
++. nr aP \\n(aP+1
++. nr cF \\n(.f
++. nr cZ \\n(.s
++. nR
++.\}
++..
++.\" NS Sf macro -defunct
++.de Sf
++.tm .Sf defunct, use prefix or Ns
++..
++.ds rV "function returns the value 0 if successful; otherwise the value -1 is returned and the global variable \\*(vAerrno\fP is set to indicate the error.
++.\" Ns Rv macro - return values
++.\" Ns rV string - standard return message
++.de Rv
++.ie \\n(.$==0 \{\
++.tm Usage: .Rv [-std] (#\\n(.c)
++.\}
++.el \{\
++. ds mN Rv
++.\" . nr aP 0
++.\" . nr lR \\n(lR+1
++.\" . ds A1 \\$2
++.\" . ds A2 \\$3
++.\" . ds A3 \\$4
++.\" . ds A4 \\$5
++.\" . ds A5 \\$6
++.\" . ds A6 \\$7
++.\" . ds A7 \\$8
++.\" . ds A8 \\$9
++.\" . nr fV \\n(.$-1
++. if "\\$1"-std" \{\
++. nr cH \\*(cH
++. if (\\n(cH<2):(\\n(cH>3) .tm Usage: .Rv -std sections 2 and 3 only
++. br
++\&The
++.Fn \\$2
++\&\\*(rV
++. \}
++.\}
++..
+--- groff-1.18.1.1.orig/tmac/Makefile.sub
++++ groff-1.18.1.1/tmac/Makefile.sub
+@@ -25,15 +25,19 @@
+ html.tmac www.tmac \
+ eqnrc \
+ troffrc troffrc-end \
+- hyphen.us
++ hyphen.us \
++ andocj.tmac \
++ euc-jp.tmac \
++ gb.tmac big5.tmac
+ SPECIALFILES=an.tmac man.tmac s.tmac ms.tmac
+-STRIPFILES=e.tmac doc.tmac doc-old.tmac
+-MDOCFILES=doc-common doc-ditroff doc-nroff doc-syms
++STRIPFILES=e.tmac doc.tmac doc-old.tmac docj.tmac
++MDOCFILES=doc-common doc-ditroff doc-nroff doc-syms docj-ditroff docj-nroff
+ mdocdir=$(tmacdir)/mdoc
+ CLEANADD=\
+ stamp-wrap stamp-sed *-wrap man.tmac-sed ms.tmac-sed \
+ stamp-strip e.tmac-s doc.tmac-s doc-old.tmac-s \
+- doc-common-s doc-ditroff-s doc-nroff-s doc-syms-s mdoc.local-s
++ doc-common-s doc-ditroff-s doc-nroff-s doc-syms-s mdoc.local-s \
++ docj.tmac-s docj-ditroff-s docj-nroff-s
+ tmac_s_prefix=
+ tmac_an_prefix=
+ tmac_wrap=
+--- groff-1.18.1.1.orig/tmac/euc-jp.tmac
++++ groff-1.18.1.1/tmac/euc-jp.tmac
+@@ -0,0 +1,7 @@
++.\" euc-jp.tmac
++.\"
++.cflags 256 ,:;>}
++.cflags 256 ¡¢¡£¡¤¡¥¡¦¡§¡¨¡©¡ª¡Ë¡Í¡Ï¡Ñ¡×¡Ù¡Û¤¡¤£¤¥¤§¤©¤Ã¤ã¤å¤ç¡¼
++.cflags 256 ¥¡¥£¥¥¥§¥©¥Ã¥ã¥å¥ç
++.cflags 512 ¡Ê¡Ì¡Î¡Ð¡Ö¡Ø¡Ú
++.hc ¡¾
+--- groff-1.18.1.1.orig/tmac/big5.tmac
++++ groff-1.18.1.1/tmac/big5.tmac
+@@ -0,0 +1,15 @@
++.\" Kinsoku table for the BIG5 encoding of Chinese, recoded from
++.\" kinsoku.el in Emacs 22.0.50.
++.\" Needs review by native zh_TW speaker.
++.\"
++.cflags 256 ¡B¡C¡A¡D¡G¡F¡H¡I¡Ã¡Ä
++.cflags 256 ¡²Éi¡X¡þ¡U¡L¡¦¡¨¡^
++.cflags 256 ¡f¡b¡r¡n¡v¡z¡j¡Ñ¡×¡Õ¡Ø¡Û¡ñ¢X
++.cflags 256 ¡½¡µ¡¶¡¾¡¿¡°¢E¡÷¡ö¡ô¡ã
++.cflags 512 ¡Ö¡Ù¡ï¡ð¢X¢C¡ì
++.cflags 512 ÛÖ¶yÅV¡D¡¶¡ù£H¢}
++.\"
++.\" http://tcl.apache.org/sources/tcl/tools/encoding/big5.txt lists U+FF0D
++.\" as FULLWIDTH HYPHEN-MINUS. Is this correct?
++.\"
++.hc ¡Ð
+--- groff-1.18.1.1.orig/tmac/andocj.tmac
++++ groff-1.18.1.1/tmac/andocj.tmac
+@@ -0,0 +1,12 @@
++.\" Load either tmac.an or tmac.doc.
++.if !\n(.g .ab These macros require groff.
++.de Dd
++.rm Dd
++.do mso tmac.docj
++\\*(Dd\\
++..
++.de TH
++.rm TH
++.do mso tmac.an
++\\*(TH\\
++..
+--- groff-1.18.1.1.orig/aclocal.m4
++++ groff-1.18.1.1/aclocal.m4
+@@ -356,6 +356,19 @@
+ AC_MSG_RESULT(no);AC_MSG_ERROR([header files do not support C++ (if you are using a version of gcc/g++ earlier than 2.5, you should install libg++)]))
+ AC_LANG_POP(C++)])dnl
+ dnl
++dnl Support Multibyte characters, such as Japanese Code (EUC-JP)
++dnl
++AC_DEFUN(GROFF_MULTIBYTE,
++[AC_MSG_CHECKING([whether to enable multibyte extension])
++AC_ARG_ENABLE(multibyte, [ --enable-multibyte Enable multibyte extension],
++ multibyte=$enableval, multibyte=no)
++if test "x$multibyte" != "xno"; then
++ AC_DEFINE(ENABLE_MULTIBYTE, 1,
++ [Define if you want to use multibyte extension.])
++fi
++AC_MSG_RESULT([$multibyte])
++])dnl
++dnl
+ dnl
+ AC_DEFUN(GROFF_TMAC,
+ [AC_MSG_CHECKING([for prefix of system macro packages])
+@@ -415,6 +428,33 @@
+ AC_MSG_RESULT([$tmac_wrap])
+ AC_SUBST(tmac_wrap)])dnl
+ dnl
++dnl codeset.m4 from gettext, by Bruno Haible.
++dnl
++AC_DEFUN(GROFF_LANGINFO_CODESET,
++[AC_CACHE_CHECK([for nl_langinfo and CODESET], groff_cv_langinfo_codeset,
++ [AC_TRY_LINK([#include <langinfo.h>],
++ [char* cs = nl_langinfo(CODESET);],
++ groff_cv_langinfo_codeset=yes,
++ groff_cv_langinfo_codeset=no)
++ ])
++ if test $groff_cv_langinfo_codeset = yes; then
++ AC_DEFINE(HAVE_LANGINFO_CODESET, 1,
++ [Define if you have <langinfo.h> and nl_langinfo(CODESET).])
++ fi
++])dnl
++dnl
++dnl
++AC_DEFUN(GROFF_DVIFORMAT,
++[AC_MSG_CHECKING([japanese dvi file format])
++if test "x$dvi_format" != "xASCII"; then
++ DVIFORMAT=NTT
++else
++ DVIFORMAT=ASCII
++fi
++AC_MSG_RESULT([$DVIFORMAT])
++AC_SUBST(DVIFORMAT)
++])dnl
++dnl
+ dnl
+ AC_DEFUN(GROFF_G,
+ [AC_MSG_CHECKING([for existing troff installation])
+@@ -481,7 +521,7 @@
+ AC_DEFINE(IS_EBCDIC_HOST, 1,
+ [Define if the host's encoding is EBCDIC.]),
+ groff_cv_ebcdic="no"
+- TTYDEVDIRS="font/devascii font/devlatin1"
++ TTYDEVDIRS="font/devascii font/devlatin1 font/devascii8 font/devnippon"
+ OTHERDEVDIRS="font/devlj4 font/devlbp"
+ AC_MSG_RESULT(no))
+ AC_SUBST(TTYDEVDIRS)
+--- groff-1.18.1.1.orig/configure.ac
++++ groff-1.18.1.1/configure.ac
+@@ -68,6 +68,9 @@
+ GROFF_G
+ GROFF_TMAC
+ GROFF_HTML_PROGRAMS
++GROFF_MULTIBYTE
++GROFF_DVIFORMAT
++GROFF_LANGINFO_CODESET
+ AC_CONFIG_FILES(stamp-h, [echo timestamp > stamp-h])
+ AC_CONFIG_FILES([Makefile doc/Makefile src/xditview/Imakefile])
+ AC_OUTPUT
+--- groff-1.18.1.1.orig/stamp-h
++++ groff-1.18.1.1/stamp-h
+@@ -0,0 +1 @@
++timestamp
+--- groff-1.18.1.1.orig/contrib/pic2graph/pic2graph.sh
++++ groff-1.18.1.1/contrib/pic2graph/pic2graph.sh
+@@ -32,7 +32,7 @@
+ # We don't have complete option coverage on eqn because this is primarily
+ # intended as a pic translator; we can live with eqn defaults.
+ #
+-# $Id: pic2graph.sh,v 1.2 2002/07/17 04:55:46 wlemb Exp $
++# $Id: pic2graph.sh,v 1.5 2003/10/31 19:32:36 wlemb Exp $
+ #
+ groffpic_opts=""
+ gs_opts=""
+@@ -44,7 +44,7 @@
+ do
+ case $1 in
+ -unsafe)
+- groffpic_opts="-U"
++ groffpic_opts="-U";;
+ -format)
+ format=$2
+ shift;;
+@@ -68,16 +68,34 @@
+ eqndelim="delim $eqndelim"
+ fi
+
++# create temporary directory
++tmp=
++for d in "$GROFF_TMPDIR" "$TMPDIR" "$TMP" "$TEMP" /tmp; do
++ test -z "$d" && continue
++
++ tmp=`(umask 077 && mktemp -d -q "$d/pic2graph-XXXXXX") 2> /dev/null` \
++ && test -n "$tmp" && test -d "$tmp" \
++ && break
++
++ tmp=$d/pic2graph$$-$RANDOM
++ (umask 077 && mkdir $tmp) 2> /dev/null \
++ && break
++done;
++if test -z "$tmp"; then
++ echo "$0: cannot create temporary directory" >&2
++ { (exit 1); exit 1; }
++fi
++
++trap 'exit_status=$?; rm -rf $tmp && exit $exit_status' 0 2 15
++
+ # Here goes:
+ # 1. Wrap the input in dummy .PS/PE macros (and add possibly null .EQ/.EN)
+ # 2. Process through eqn and pic to emit troff markup.
+ # 3. Process through groff to emit Postscript.
+ # 4. Use convert(1) to crop the PostScript and turn it into a bitmap.
+-tmp=/usr/tmp/pic2graph-$$
+-trap "rm ${tmp}.*" 0 2 15
+ (echo ".EQ"; echo $eqndelim; echo ".EN"; echo ".PS"; cat; echo ".PE") | \
+- groff -e -p $groffpic_opts -Tps >${tmp}.ps \
+- && convert -crop 0x0 $convert_opts ${tmp}.ps ${tmp}.${format} \
+- && cat ${tmp}.${format}
++ groff -e -p $groffpic_opts -Tps -P-pletter > $tmp/pic2graph.ps \
++ && convert -crop 0x0 $convert_opts $tmp/pic2graph.ps $tmp/pic2graph.$format \
++ && cat $tmp/pic2graph.$format
+
+ # End
+--- groff-1.18.1.1.orig/contrib/mom/groff_mom.man
++++ groff-1.18.1.1/contrib/mom/groff_mom.man
+@@ -13,6 +13,10 @@
+ A copy of the Free Documentation License is included as a file called
+ FDL in the main directory of the groff source package.
+ ..
++.ig
++A copy of the GNU Free Documentation License is also available in this
++Debian package as /usr/share/doc/groff/copyright.
++..
+ .
+ .mso www.tmac
+ .
+--- groff-1.18.1.1.orig/contrib/groffer/groffer.sh
++++ groff-1.18.1.1/contrib/groffer/groffer.sh
+@@ -3228,17 +3228,12 @@
+ do
+ if is_not_empty "$d"; then
+ if obj d is_dir && obj d is_writable; then
+- _TMP_DIR="${d}/${_PROGRAM_NAME}${_PROCESS_ID}";
+- if obj _TMP_DIR is_dir; then
+- rm -f "${_TMP_DIR}"/*;
++ _TMP_DIR="$(mktemp -d "${d}/${_PROGRAM_NAME}.XXXXXX")"
++ if test $? = 0; then
+ break;
+ else
+- mkdir "${_TMP_DIR}";
+- if obj _TMP_DIR is_not_dir; then
+- _TMP_DIR='';
+- continue;
+- fi;
+- break;
++ _TMP_DIR='';
++ continue;
+ fi;
+ fi;
+ if obj _TMP_DIR is_not_writable; then
+--- groff-1.18.1.1.orig/contrib/eqn2graph/eqn2graph.sh
++++ groff-1.18.1.1/contrib/eqn2graph/eqn2graph.sh
+@@ -32,7 +32,7 @@
+ #
+ # Thus, we pass -U to groff(1), and everything else to convert(1).
+ #
+-# $Id: eqn2graph.sh,v 1.2 2002/07/17 04:55:46 wlemb Exp $
++# $Id: eqn2graph.sh,v 1.3 2003/10/28 07:46:23 wlemb Exp $
+ #
+ groff_opts=""
+ convert_opts=""
+@@ -58,17 +58,34 @@
+ shift
+ done
+
++# create temporary directory
++tmp=
++for d in "$GROFF_TMPDIR" "$TMPDIR" "$TMP" "$TEMP" /tmp; do
++ test -z "$d" && continue
++
++ tmp=`(umask 077 && mktemp -d -q "$d/eqn2graph-XXXXXX") 2> /dev/null` \
++ && test -n "$tmp" && test -d "$tmp" \
++ && break
++
++ tmp=$d/eqn2graph$$-$RANDOM
++ (umask 077 && mkdir $tmp) 2> /dev/null && break
++done;
++if test -z "$tmp"; then
++ echo "$0: cannot create temporary directory" >&2
++ { (exit 1); exit 1; }
++fi
++
++trap 'exit_status=$?; rm -rf $tmp && exit $exit_status' 0 2 15
++
+ # Here goes:
+ # 1. Add .EQ/.EN.
+ # 2. Process through eqn(1) to emit troff markup.
+ # 3. Process through groff(1) to emit Postscript.
+ # 4. Use convert(1) to crop the Postscript and turn it into a bitmap.
+-tmp=/usr/tmp/eqn2graph-$$
+-trap "rm ${tmp}.*" 0 2 15
+ read equation
+-(echo ".EQ"; echo 'delim $$'; echo ".EN"; echo '$'"${equation}"'$') | \
+- groff -e $groff_opts -Tps >${tmp}.ps \
+- && convert -crop 0x0 $convert_opts ${tmp}.ps ${tmp}.${format} \
+- && cat ${tmp}.${format}
++(echo ".EQ"; echo 'delim $$'; echo ".EN"; echo '$'"$equation"'$') | \
++ groff -e $groff_opts -Tps -P-pletter > $tmp/eqn2graph.ps \
++ && convert -crop 0x0 $convert_opts $tmp/eqn2graph.ps $tmp/eqn2graph.$format \
++ && cat $tmp/eqn2graph.$format
+
+ # End
+--- groff-1.18.1.1.orig/configure
++++ groff-1.18.1.1/configure
+@@ -305,7 +305,7 @@
+ # include <unistd.h>
+ #endif"
+
+-ac_subst_vars='SHELL PATH_SEPARATOR PACKAGE_NAME PACKAGE_TARNAME PACKAGE_VERSION PACKAGE_STRING PACKAGE_BUGREPORT exec_prefix prefix program_transform_name bindir sbindir libexecdir datadir sysconfdir sharedstatedir localstatedir libdir includedir oldincludedir infodir mandir build_alias host_alias target_alias DEFS ECHO_C ECHO_N ECHO_T LIBS groff_top_builddir CC CFLAGS LDFLAGS CPPFLAGS ac_ct_CC EXEEXT OBJEXT CXX CXXFLAGS ac_ct_CXX TTYDEVDIRS OTHERDEVDIRS LPR LP LPQ PSPRINT DVIPRINT PERLPATH YACC RANLIB ac_ct_RANLIB INSTALL_INFO INSTALL_PROGRAM INSTALL_SCRIPT INSTALL_DATA LN_S SH_SCRIPT_SED_CMD CPP EGREP LIBM LIBOBJS BROKEN_SPOOLER_FLAGS PAGE g sys_tmac_prefix tmac_wrap pnmcut pnmcrop pnmtopng gs psselect make_html make_install_html LTLIBOBJS'
++ac_subst_vars='SHELL PATH_SEPARATOR PACKAGE_NAME PACKAGE_TARNAME PACKAGE_VERSION PACKAGE_STRING PACKAGE_BUGREPORT exec_prefix prefix program_transform_name bindir sbindir libexecdir datadir sysconfdir sharedstatedir localstatedir libdir includedir oldincludedir infodir mandir build_alias host_alias target_alias DEFS ECHO_C ECHO_N ECHO_T LIBS groff_top_builddir CC CFLAGS LDFLAGS CPPFLAGS ac_ct_CC EXEEXT OBJEXT CXX CXXFLAGS ac_ct_CXX TTYDEVDIRS OTHERDEVDIRS LPR LP LPQ PSPRINT DVIPRINT PERLPATH YACC RANLIB ac_ct_RANLIB INSTALL_INFO INSTALL_PROGRAM INSTALL_SCRIPT INSTALL_DATA LN_S SH_SCRIPT_SED_CMD CPP EGREP LIBM LIBOBJS BROKEN_SPOOLER_FLAGS PAGE g sys_tmac_prefix tmac_wrap pnmcut pnmcrop pnmtopng gs psselect make_html make_install_html DVIFORMAT LTLIBOBJS'
+ ac_subst_files=''
+
+ # Initialize some variables set by options.
+@@ -841,6 +841,11 @@
+
+ cat <<\_ACEOF
+
++Optional Features:
++ --disable-FEATURE do not include FEATURE (same as --enable-FEATURE=no)
++ --enable-FEATURE[=ARG] include FEATURE [ARG=yes]
++ --enable-multibyte Enable multibyte extension
++
+ Some influential environment variables:
+ CC C compiler command
+ CFLAGS C compiler flags
+@@ -2530,7 +2535,7 @@
+ echo "$as_me: failed program was:" >&5
+ cat conftest.$ac_ext >&5
+ groff_cv_ebcdic="no"
+- TTYDEVDIRS="font/devascii font/devlatin1"
++ TTYDEVDIRS="font/devascii font/devlatin1 font/devascii8 font/devnippon"
+ OTHERDEVDIRS="font/devlj4 font/devlbp"
+ echo "$as_me:$LINENO: result: no" >&5
+ echo "${ECHO_T}no" >&6
+@@ -5859,6 +5864,84 @@
+ esac
+
+
++echo "$as_me:$LINENO: checking whether to enable multibyte extension" >&5
++echo $ECHO_N "checking whether to enable multibyte extension... $ECHO_C" >&6
++# Check whether --enable-multibyte or --disable-multibyte was given.
++if test "${enable_multibyte+set}" = set; then
++ enableval="$enable_multibyte"
++ multibyte=$enableval
++else
++ multibyte=no
++fi;
++if test "x$multibyte" != "xno"; then
++
++cat >>confdefs.h <<\_ACEOF
++#define ENABLE_MULTIBYTE 1
++_ACEOF
++
++fi
++echo "$as_me:$LINENO: result: $multibyte" >&5
++echo "${ECHO_T}$multibyte" >&6
++
++echo "$as_me:$LINENO: checking japanese dvi file format" >&5
++echo $ECHO_N "checking japanese dvi file format... $ECHO_C" >&6
++if test "x$dvi_format" != "xASCII"; then
++ DVIFORMAT=NTT
++else
++ DVIFORMAT=ASCII
++fi
++echo "$as_me:$LINENO: result: $DVIFORMAT" >&5
++echo "${ECHO_T}$DVIFORMAT" >&6
++
++
++echo "$as_me:$LINENO: checking for nl_langinfo and CODESET" >&5
++echo $ECHO_N "checking for nl_langinfo and CODESET... $ECHO_C" >&6
++if test "${groff_cv_langinfo_codeset+set}" = set; then
++ echo $ECHO_N "(cached) $ECHO_C" >&6
++else
++ cat >conftest.$ac_ext <<_ACEOF
++#line $LINENO "configure"
++#include "confdefs.h"
++#include <langinfo.h>
++int
++main ()
++{
++char* cs = nl_langinfo(CODESET);
++ ;
++ return 0;
++}
++_ACEOF
++rm -f conftest.$ac_objext conftest$ac_exeext
++if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
++ (eval $ac_link) 2>&5
++ ac_status=$?
++ echo "$as_me:$LINENO: \$? = $ac_status" >&5
++ (exit $ac_status); } &&
++ { ac_try='test -s conftest$ac_exeext'
++ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
++ (eval $ac_try) 2>&5
++ ac_status=$?
++ echo "$as_me:$LINENO: \$? = $ac_status" >&5
++ (exit $ac_status); }; }; then
++ groff_cv_langinfo_codeset=yes
++else
++ echo "$as_me: failed program was:" >&5
++cat conftest.$ac_ext >&5
++groff_cv_langinfo_codeset=no
++fi
++rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext
++
++fi
++echo "$as_me:$LINENO: result: $groff_cv_langinfo_codeset" >&5
++echo "${ECHO_T}$groff_cv_langinfo_codeset" >&6
++ if test $groff_cv_langinfo_codeset = yes; then
++
++cat >>confdefs.h <<\_ACEOF
++#define HAVE_LANGINFO_CODESET 1
++_ACEOF
++
++ fi
++
+ ac_config_files="$ac_config_files stamp-h"
+
+ ac_config_files="$ac_config_files Makefile doc/Makefile src/xditview/Imakefile"
+@@ -6497,6 +6580,7 @@
+ s,@psselect@,$psselect,;t t
+ s,@make_html@,$make_html,;t t
+ s,@make_install_html@,$make_install_html,;t t
++s,@DVIFORMAT@,$DVIFORMAT,;t t
+ s,@LTLIBOBJS@,$LTLIBOBJS,;t t
+ CEOF
+
+--- groff-1.18.1.1.orig/Makefile.in
++++ groff-1.18.1.1/Makefile.in
+@@ -136,7 +136,11 @@
+ # directory will be always added.
+ # `troffrc' and `troffrc-end' (and `eqnrc') are searched neither in the
+ # current nor in the home directory.
++ifeq (,$(extratmacdirs))
+ tmacpath=$(systemtmacdir):$(localtmacdir):$(tmacdir)
++else
++tmacpath=$(systemtmacdir):$(localtmacdir):$(tmacdir):$(extratmacdirs)
++endif
+
+ # `sys_tmac_prefix' is prefix (if any) for system macro packages.
+ sys_tmac_prefix=@sys_tmac_prefix@
+@@ -195,6 +199,9 @@
+ man7ext=7
+ man7dir=$(manroot)/man$(man7ext)
+
++# DVI file format.
++DVIFORMAT=@DVIFORMAT@
++
+ # The configure script checks whether all necessary utility programs for
+ # grohtml are available -- only then we can build the HTML documentation.
+ make_html=@make_html@
+@@ -261,6 +268,8 @@
+ # -DRETSIGTYPE=int if signal handlers return int not void
+ # -DIS_EBCDIC_HOST if the host's encoding is EBCDIC
+ # -DPAGEA4 if the the printer's page size is A4
++# -DENABLE_MULTIBYTE enable multibyte extension
++# -DHAVE_LANGINFO_CODESET if you have nl_langinfo(CODESET)
+ DEFINES=@DEFS@
+
+ # Include
+@@ -395,7 +404,8 @@
+ "PERLPATH=$(PERLPATH)" \
+ "SH_SCRIPT_SED_CMD=$(SH_SCRIPT_SED_CMD)" \
+ "PURIFY=$(PURIFY)" \
+- "PURIFYCCFLAGS=$(PURIFYCCFLAGS)"
++ "PURIFYCCFLAGS=$(PURIFYCCFLAGS)" \
++ "DVIFORMAT=$(DVIFORMAT)"
+
+ SHELL=/bin/sh
+ INCDIRS=src/include
+@@ -437,8 +447,10 @@
+ font/devhtml
+ ALLTTYDEVDIRS=\
+ font/devascii \
++ font/devascii8 \
+ font/devlatin1 \
+ font/devutf8 \
++ font/devnippon \
+ font/devcp1047
+ OTHERDIRS=\
+ man \
+@@ -483,7 +495,7 @@
+ fi
+
+ do=all
+-dodirs=$(ALLDIRS) dot
++dodirs=$(DISTDIRS)
+ # Default target for subdir_Makefile
+ subdir=src/roff/troff
+
+--- groff-1.18.1.1.orig/TODO.jp
++++ groff-1.18.1.1/TODO.jp
+@@ -0,0 +1,19 @@
++TODO lists
++
++- configure
++ nl_langinfo()
++ iconv()
++
++- font/devdvi
++ G,M -- NTT and/or ASCII
++- src/devices
++ grohtml
++ grodvi
++ grolbp
++ grolj4
++- src/xditview
++
++- command line option to specify input/output encoding
++- font code?
++ can we assume wchar code == font code?
++ [to simplify indexing]
+--- groff-1.18.1.1.orig/mdate.sh
++++ groff-1.18.1.1/mdate.sh
+@@ -2,41 +2,4 @@
+
+ # Print the modification date of $1 `nicely'.
+
+-# Don't want foreign dates.
+-
+-LANGUAGE=
+-LC_ALL=C; export LC_ALL
+-
+-
+-(date;
+-if ls -L /dev/null 1>/dev/null 2>&1; then ls -L -l $1; else ls -l $1; fi
+-) | awk '
+-BEGIN {
+- full["Jan"] = "January"; number["Jan"] = 1;
+- full["Feb"] = "February"; number["Feb"] = 2;
+- full["Mar"] = "March"; number["Mar"] = 3;
+- full["Apr"] = "April"; number["Apr"] = 4;
+- full["May"] = "May"; number["May"] = 5;
+- full["Jun"] = "June"; number["Jun"] = 6;
+- full["Jul"] = "July"; number["Jul"] = 7;
+- full["Aug"] = "August"; number["Aug"] = 8;
+- full["Sep"] = "September"; number["Sep"] = 9;
+- full["Oct"] = "October"; number["Oct"] = 10;
+- full["Nov"] = "November"; number["Nov"] = 11;
+- full["Dec"] = "December"; number["Dec"] = 12;
+-}
+-
+-NR == 1 {
+- month = $2;
+- year = $NF;
+-}
+-
+-NR == 2 {
+- if ($(NF-1) ~ /:/) {
+- if (number[$(NF-3)] > number[month])
+- year--;
+- }
+- else
+- year = $(NF-1);
+- print $(NF-2), full[$(NF-3)], year
+-}'
++perl -MPOSIX -le 'print strftime("%d %B %Y", localtime((stat $ARGV[0])[9]))' $1
+--- groff-1.18.1.1.orig/man/groff_out.man
++++ groff-1.18.1.1/man/groff_out.man
+@@ -19,6 +19,10 @@
+ A copy of the Free Documentation License is included as a file called
+ FDL in the main directory of the groff source package.
+ ..
++.ig
++A copy of the GNU Free Documentation License is also available in this
++Debian package as /usr/share/doc/groff/copyright.
++..
+ .
+ .\" --------------------------------------------------------------------
+ .\" Setup
+--- groff-1.18.1.1.orig/man/groff_char.man
++++ groff-1.18.1.1/man/groff_char.man
+@@ -32,6 +32,10 @@
+ A copy of the Free Documentation License is included as a file called
+ FDL in the main directory of the groff source package.
+ ..
++.ig
++A copy of the GNU Free Documentation License is also available in this
++Debian package as /usr/share/doc/groff/copyright.
++..
+ .
+ .\" --------------------------------------------------------------------
+ .\" Setup Part 1
+--- groff-1.18.1.1.orig/man/groff_tmac.man
++++ groff-1.18.1.1/man/groff_tmac.man
+@@ -32,6 +32,10 @@
+ A copy of the Free Documentation License is included as a file called
+ FDL in the main directory of the groff source package.
+ ..
++.ig
++A copy of the GNU Free Documentation License is also available in this
++Debian package as /usr/share/doc/groff/copyright.
++..
+ .
+ .\" --------------------------------------------------------------------
+ .\" Setup
+--- groff-1.18.1.1.orig/man/roff.man
++++ groff-1.18.1.1/man/roff.man
+@@ -18,6 +18,10 @@
+ A copy of the Free Documentation License is included as a file called
+ FDL in the main directory of the groff source package.
+ ..
++.ig
++A copy of the GNU Free Documentation License is also available in this
++Debian package as /usr/share/doc/groff/copyright.
++..
+ .
+ .\" --------------------------------------------------------------------
+ .\" Setup
+--- groff-1.18.1.1.orig/man/ditroff.man
++++ groff-1.18.1.1/man/ditroff.man
+@@ -18,6 +18,10 @@
+ A copy of the Free Documentation License is included as a file called
+ FDL in the main directory of the groff source package.
+ ..
++.ig
++A copy of the GNU Free Documentation License is also available in this
++Debian package as /usr/share/doc/groff/copyright.
++..
+ .
+ .\" --------------------------------------------------------------------
+ .\" Setup
+--- groff-1.18.1.1.orig/man/groff_diff.man
++++ groff-1.18.1.1/man/groff_diff.man
+@@ -23,6 +23,10 @@
+ A copy of the Free Documentation License is included as a file called
+ FDL in the main directory of the groff source package.
+ ..
++.ig
++A copy of the GNU Free Documentation License is also available in this
++Debian package as /usr/share/doc/groff/copyright.
++..
+ .
+ .\" --------------------------------------------------------------------
+ .\" Setup
+--- groff-1.18.1.1.orig/man/groff.man
++++ groff-1.18.1.1/man/groff.man
+@@ -19,6 +19,10 @@
+ A copy of the Free Documentation License is included as a file called
+ FDL in the main directory of the groff source package.
+ ..
++.ig
++A copy of the GNU Free Documentation License is also available in this
++Debian package as /usr/share/doc/groff/copyright.
++..
+ .
+ .\" --------------------------------------------------------------------
+ .\" Setup