2 * Copyright (c) 1997, 2001 Hellmuth Michaelis. All rights reserved.
4 * Redistribution and use in source and binary forms, with or without
5 * modification, are permitted provided that the following conditions
7 * 1. Redistributions of source code must retain the above copyright
8 * notice, this list of conditions and the following disclaimer.
9 * 2. Redistributions in binary form must reproduce the above copyright
10 * notice, this list of conditions and the following disclaimer in the
11 * documentation and/or other materials provided with the distribution.
13 * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND
14 * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
15 * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
16 * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE
17 * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
18 * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
19 * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
20 * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
21 * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
22 * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
25 *---------------------------------------------------------------------------
27 * i4b_tel.c - device driver for ISDN telephony
28 * --------------------------------------------
30 * $FreeBSD: src/sys/i4b/driver/i4b_tel.c,v 1.10.2.4 2001/12/16 15:12:57 hm Exp $
32 * last edit-date: [Sat Aug 11 18:07:05 2001]
34 *---------------------------------------------------------------------------*/
36 #include "use_i4btel.h"
42 #include <sys/param.h>
43 #include <sys/systm.h>
45 #include <sys/event.h>
49 #include <sys/kernel.h>
51 #include <sys/socket.h>
53 #include <sys/thread2.h>
57 #include <sys/devfsext.h>
60 #include <net/i4b/include/machine/i4b_ioctl.h>
61 #include <net/i4b/include/machine/i4b_tel_ioctl.h>
62 #include <net/i4b/include/machine/i4b_debug.h>
64 #include "../include/i4b_global.h"
65 #include "../include/i4b_mbuf.h"
66 #include "../include/i4b_l3l4.h"
67 #include "../layer4/i4b_l4.h"
69 /* minor number: lower 6 bits = unit number */
73 #define UNIT(n) (minor(n) & UNITMASK)
75 /* minor number: upper 2 bits = function number */
78 #define FUNC(n) (((minor(n)) >> UNITBITS) & FUNCMASK)
80 #define FUNCTEL 0 /* 0 = normal i4btel device */
81 #define FUNCDIAL 1 /* 1 = i4bteld dialout device */
83 #define NOFUNCS 2 /* number of device classes */
87 /* used only in func = FUNCTEL */
89 drvr_link_t drvr_linktab; /* driver linktab */
90 isdn_link_t *isdn_linktab; /* isdn linktab */
91 int audiofmt; /* audio format conversion */
92 u_char *rcvttab; /* conversion table on read */
93 u_char *wcvttab; /* conversion table on write */
94 call_desc_t *cdp; /* call descriptor pointer */
96 /* used only in func = FUNCDIAL */
98 char result; /* result code for dial dev */
100 /* used in func = FUNCDIAL and func = FUNCTEL*/
102 int devstate; /* state of this unit */
103 #define ST_IDLE 0x00 /* idle */
104 #define ST_CONNECTED 0x01 /* isdn connected state */
105 #define ST_ISOPEN 0x02 /* userland opened */
106 #define ST_RDWAITDATA 0x04 /* userland read waiting */
107 #define ST_WRWAITEMPTY 0x08 /* userland write waiting */
108 #define ST_TONE 0x10 /* tone generator */
110 struct kqinfo kqp; /* select / poll / kevent */
112 struct i4b_tel_tones tones;
119 static tel_sc_t tel_sc[NI4BTEL][NOFUNCS];
123 static void tel_rx_data_rdy(int unit);
124 static void tel_tx_queue_empty(int unit);
125 static void tel_init_linktab(int unit);
126 static void tel_connect(int unit, void *cdp);
127 static void tel_disconnect(int unit, void *cdp);
128 static void tel_tone(tel_sc_t *sc);
130 /* audio format conversion tables */
131 static unsigned char a2u_tab[];
132 static unsigned char u2a_tab[];
133 static unsigned char bitreverse[];
134 static u_char sinetab[];
136 #define PDEVSTATIC static
138 PDEVSTATIC d_open_t i4btelopen;
139 PDEVSTATIC d_close_t i4btelclose;
140 PDEVSTATIC d_read_t i4btelread;
141 PDEVSTATIC d_write_t i4btelwrite;
142 PDEVSTATIC d_ioctl_t i4btelioctl;
143 PDEVSTATIC d_kqfilter_t i4btelkqfilter;
145 PDEVSTATIC void i4btelfilt_detach(struct knote *);
146 PDEVSTATIC int i4btelfilt_read(struct knote *, long);
147 PDEVSTATIC int i4btelfilt_write(struct knote *, long);
149 static struct dev_ops i4btel_ops = {
151 .d_open = i4btelopen,
152 .d_close = i4btelclose,
153 .d_read = i4btelread,
154 .d_write = i4btelwrite,
155 .d_ioctl = i4btelioctl,
156 .d_kqfilter = i4btelkqfilter
159 PDEVSTATIC void i4btelattach(void *);
161 PSEUDO_SET(i4btelattach, i4b_tel);
163 /*===========================================================================*
164 * DEVICE DRIVER ROUTINES
165 *===========================================================================*/
167 /*---------------------------------------------------------------------------*
168 * interface attach routine
169 *---------------------------------------------------------------------------*/
171 i4btelattach(void *dummy)
175 kprintf("i4btel: %d ISDN telephony interface device(s) attached\n", NI4BTEL);
177 for(i=0; i < NI4BTEL; i++)
179 for(j=0; j < NOFUNCS; j++)
181 tel_sc[i][j].devstate = ST_IDLE;
182 tel_sc[i][j].audiofmt = CVT_NONE;
183 tel_sc[i][j].rcvttab = NULL;
184 tel_sc[i][j].wcvttab = NULL;
185 tel_sc[i][j].result = 0;
189 case FUNCTEL: /* normal i4btel device */
190 make_dev(&i4btel_ops, i,
192 0600, "i4btel%d", i);
195 case FUNCDIAL: /* i4bteld dialout device */
196 make_dev(&i4btel_ops, i+(1<<UNITBITS),
198 0600, "i4bteld%d", i);
206 /*---------------------------------------------------------------------------*
208 *---------------------------------------------------------------------------*/
210 i4btelopen(struct dev_open_args *ap)
212 cdev_t dev = ap->a_head.a_dev;
213 int unit = UNIT(dev);
214 int func = FUNC(dev);
221 sc = &tel_sc[unit][func];
223 if(sc->devstate & ST_ISOPEN)
226 sc->devstate |= ST_ISOPEN;
236 /*---------------------------------------------------------------------------*
238 *---------------------------------------------------------------------------*/
240 i4btelclose(struct dev_close_args *ap)
242 cdev_t dev = ap->a_head.a_dev;
243 int unit = UNIT(dev);
244 int func = FUNC(dev);
251 sc = &tel_sc[unit][func];
254 sc->devstate &= ~ST_TONE;
256 if((func == FUNCTEL) &&
257 (sc->isdn_linktab != NULL && sc->isdn_linktab->tx_queue != NULL))
259 while(!(IF_QEMPTY(sc->isdn_linktab->tx_queue)))
261 sc->devstate |= ST_WRWAITEMPTY;
263 if((error = tsleep((caddr_t) &sc->isdn_linktab->tx_queue,
264 PCATCH, "wtcl", 0)) != 0)
269 sc->devstate &= ~ST_WRWAITEMPTY;
272 sc->devstate &= ~ST_ISOPEN;
274 wakeup((caddr_t) &sc->tones);
279 /*---------------------------------------------------------------------------*
280 * i4btelioctl - device driver ioctl routine
281 *---------------------------------------------------------------------------*/
283 i4btelioctl(struct dev_ioctl_args *ap)
285 cdev_t dev = ap->a_head.a_dev;
286 int unit = UNIT(dev);
287 int func = FUNC(dev);
291 tel_sc_t *sc = &tel_sc[unit][func];
297 case I4B_TEL_GETAUDIOFMT:
298 *(int *)ap->a_data = sc->audiofmt;
301 case I4B_TEL_SETAUDIOFMT:
302 switch (*(int *)ap->a_data)
311 sc->rcvttab = a2u_tab;
312 sc->wcvttab = u2a_tab;
317 sc->rcvttab = u2a_tab;
318 sc->wcvttab = a2u_tab;
325 sc->audiofmt = *(int *)ap->a_data;
328 case I4B_TEL_EMPTYINPUTQUEUE:
330 while((sc->devstate & ST_CONNECTED) &&
331 (sc->devstate & ST_ISOPEN) &&
332 !IF_QEMPTY(sc->isdn_linktab->rx_queue))
334 IF_DEQUEUE(sc->isdn_linktab->rx_queue, m);
345 mvr = (msg_vr_req_t *)ap->a_data;
347 mvr->version = VERSION;
354 struct i4b_tel_tones *tt;
356 tt = (struct i4b_tel_tones *)ap->a_data;
358 while ((sc->devstate & ST_TONE) &&
359 sc->tones.duration[sc->toneidx] != 0) {
360 if((error = tsleep((caddr_t) &sc->tones,
361 PCATCH, "rtone", 0 )) != 0) {
366 if(!(sc->devstate & ST_ISOPEN)) {
370 if(!(sc->devstate & ST_CONNECTED)) {
377 sc->tonefreq = tt->frequency[0];
378 sc->devstate |= ST_TONE;
389 else if(func == FUNCDIAL)
401 /*---------------------------------------------------------------------------*
402 * read from tel device
403 *---------------------------------------------------------------------------*/
405 i4btelread(struct dev_read_args *ap)
407 cdev_t dev = ap->a_head.a_dev;
408 struct uio *uio = ap->a_uio;
409 int unit = UNIT(dev);
410 int func = FUNC(dev);
415 tel_sc_t *sc = &tel_sc[unit][func];
417 if(!(sc->devstate & ST_ISOPEN))
424 while((sc->devstate & ST_ISOPEN) &&
425 (sc->devstate & ST_CONNECTED) &&
426 IF_QEMPTY(sc->isdn_linktab->rx_queue))
428 sc->devstate |= ST_RDWAITDATA;
430 NDBGL4(L4_TELDBG, "i4btel%d, queue empty!", unit);
432 if((error = tsleep((caddr_t) &sc->isdn_linktab->rx_queue,
433 PCATCH, "rtel", 0 )) != 0)
435 sc->devstate &= ~ST_RDWAITDATA;
441 if(!(sc->devstate & ST_ISOPEN))
447 if(!(sc->devstate & ST_CONNECTED))
454 IF_DEQUEUE(sc->isdn_linktab->rx_queue, m);
456 if(m && m->m_len > 0)
460 for(i = 0; i < m->m_len; i++)
462 /* always reverse bit order from line */
463 mtod(m,u_char *)[i] = bitreverse[mtod(m,u_char *)[i]];
465 /* convert if necessary */
467 mtod(m,u_char *)[i] = sc->rcvttab[mtod(m,u_char *)[i]];
469 error = uiomove(m->m_data, m->m_len, uio);
471 NDBGL4(L4_TELDBG, "i4btel%d, mbuf (%d bytes), uiomove %d!", unit, m->m_len, error);
475 NDBGL4(L4_TELDBG, "i4btel%d, empty mbuf from queue!", unit);
484 else if(func == FUNCDIAL)
487 while((sc->result == 0) && (sc->devstate & ST_ISOPEN))
489 sc->devstate |= ST_RDWAITDATA;
491 if((error = tsleep((caddr_t) &sc->result,
492 PCATCH, "rtel1", 0 )) != 0)
494 sc->devstate &= ~ST_RDWAITDATA;
500 if(!(sc->devstate & ST_ISOPEN))
508 error = uiomove(&sc->result, 1, uio);
521 /*---------------------------------------------------------------------------*
522 * write to tel device
523 *---------------------------------------------------------------------------*/
525 i4btelwrite(struct dev_write_args *ap)
527 cdev_t dev = ap->a_head.a_dev;
528 struct uio *uio = ap->a_uio;
529 int unit = UNIT(dev);
530 int func = FUNC(dev);
533 tel_sc_t *sc = &tel_sc[unit][func];
535 if(!(sc->devstate & ST_ISOPEN))
544 if(!(sc->devstate & ST_CONNECTED)) {
549 sc->devstate &= ~ST_TONE;
550 while((IF_QFULL(sc->isdn_linktab->tx_queue)) &&
551 (sc->devstate & ST_ISOPEN))
553 sc->devstate |= ST_WRWAITEMPTY;
555 if((error = tsleep((caddr_t) &sc->isdn_linktab->tx_queue,
556 PCATCH, "wtel", 0)) != 0)
558 sc->devstate &= ~ST_WRWAITEMPTY;
564 if(!(sc->devstate & ST_ISOPEN))
570 if(!(sc->devstate & ST_CONNECTED))
576 if((m = i4b_Bgetmbuf(BCH_MAX_DATALEN)) != NULL)
580 m->m_len = (int)szmin(BCH_MAX_DATALEN, uio->uio_resid);
582 error = uiomove(m->m_data, (size_t)m->m_len, uio);
584 for(i = 0; i < m->m_len; i++)
586 /* convert if necessary */
588 mtod(m,u_char *)[i] = sc->wcvttab[mtod(m,u_char *)[i]];
590 /* always reverse bitorder to line */
591 mtod(m,u_char *)[i] = bitreverse[mtod(m,u_char *)[i]];
594 if(IF_QFULL(sc->isdn_linktab->tx_queue))
597 IF_ENQUEUE(sc->isdn_linktab->tx_queue, m);
598 (*sc->isdn_linktab->bch_tx_start)(sc->isdn_linktab->unit, sc->isdn_linktab->channel);
603 else if(func == FUNCDIAL)
606 char cmdbuf[CMDBUFSIZ];
607 int len = (int)szmin(CMDBUFSIZ-1, uio->uio_resid);
609 error = uiomove(cmdbuf, (size_t)len, uio);
611 if(cmdbuf[0] == CMD_DIAL)
613 i4b_l4_dialoutnumber(BDRV_TEL, unit, len-1, &cmdbuf[1]);
615 else if(cmdbuf[0] == CMD_HUP)
617 i4b_l4_drvrdisc(BDRV_TEL, unit);
619 else if(cmdbuf[0] == CMD_KEYP)
621 i4b_l4_keypad(BDRV_TEL, unit, len-1, &cmdbuf[1]);
632 /*---------------------------------------------------------------------------*
634 *---------------------------------------------------------------------------*/
637 tel_tone(tel_sc_t *sc)
643 if((m = i4b_Bgetmbuf(NTONESAMP)) == NULL) {
644 kprintf("no mbuf in tel_tone\n");
649 for (i = 0; i < NTONESAMP && (sc->devstate & ST_TONE); i++) {
651 if (sc->tones.duration[sc->toneidx] > 0) {
652 if (--sc->tones.duration[sc->toneidx] == 0) {
654 if (sc->toneidx == I4B_TEL_MAXTONES) {
655 sc->devstate &= ~ST_TONE;
658 } else if (sc->tones.frequency[sc->toneidx] == 0 &&
659 sc->tones.duration[sc->toneidx] == 0) {
660 sc->devstate &= ~ST_TONE;
664 sc->tonefreq = sc->tones.frequency[sc->toneidx];
666 if (sc->tones.duration[sc->toneidx] == 0) {
667 wakeup((caddr_t) &sc->tones);
672 sc->toneomega += sc->tonefreq;
673 if (sc->toneomega >= 8000)
674 sc->toneomega -= 8000;
675 *p++ = bitreverse[sinetab[sc->toneomega]];
678 IF_ENQUEUE(sc->isdn_linktab->tx_queue, m);
679 (*sc->isdn_linktab->bch_tx_start)(sc->isdn_linktab->unit, sc->isdn_linktab->channel);
682 /*---------------------------------------------------------------------------*
684 *---------------------------------------------------------------------------*/
685 PDEVSTATIC struct filterops i4btelfiltops_read =
686 { FILTEROP_ISFD, NULL, i4btelfilt_detach, i4btelfilt_read };
687 PDEVSTATIC struct filterops i4btelfiltops_write =
688 { FILTEROP_ISFD, NULL, i4btelfilt_detach, i4btelfilt_write };
691 i4btelkqfilter(struct dev_kqfilter_args *ap)
693 cdev_t dev = ap->a_head.a_dev;
694 struct knote *kn = ap->a_kn;
695 int unit = UNIT(dev);
696 int func = FUNC(dev);
697 tel_sc_t *sc = &tel_sc[unit][func];
702 switch (kn->kn_filter) {
704 kn->kn_fop = &i4btelfiltops_read;
705 kn->kn_hook = (caddr_t)dev;
708 kn->kn_fop = &i4btelfiltops_write;
709 kn->kn_hook = (caddr_t)dev;
712 ap->a_result = EOPNOTSUPP;
716 klist = &sc->kqp.ki_note;
717 knote_insert(klist, kn);
723 i4btelfilt_detach(struct knote *kn)
725 cdev_t dev = (cdev_t)kn->kn_hook;
726 int unit = UNIT(dev);
727 int func = FUNC(dev);
728 tel_sc_t *sc = &tel_sc[unit][func];
729 struct klist *klist = &sc->kqp.ki_note;
731 knote_remove(klist, kn);
735 i4btelfilt_read(struct knote *kn, long hint)
737 cdev_t dev = (cdev_t)kn->kn_hook;
738 int unit = UNIT(dev);
739 int func = FUNC(dev);
740 tel_sc_t *sc = &tel_sc[unit][func];
745 if (!(sc->devstate & ST_ISOPEN)) {
746 NDBGL4(L4_TELDBG, "i4btel%d, !ST_ISOPEN", unit);
753 /* reads are OK if we have any data */
754 if ((sc->devstate & ST_CONNECTED) &&
755 (sc->isdn_linktab != NULL) &&
756 (!IF_QEMPTY(sc->isdn_linktab->rx_queue)))
758 NDBGL4(L4_TELDBG, "i4btel%d, filt readable", unit);
764 NDBGL4(L4_TELDBG, "i4bteld%d, filt readable, result = %d", unit, sc->result);
776 i4btelfilt_write(struct knote *kn, long hint)
778 cdev_t dev = (cdev_t)kn->kn_hook;
779 int unit = UNIT(dev);
780 int func = FUNC(dev);
781 tel_sc_t *sc = &tel_sc[unit][func];
786 if (!(sc->devstate & ST_ISOPEN)) {
787 NDBGL4(L4_TELDBG, "i4btel%d, !ST_ISOPEN", unit);
795 * Writes are OK if we are connected and the
796 * transmit queue can take them
798 if ((sc->devstate & ST_CONNECTED) &&
799 (sc->isdn_linktab != NULL) &&
800 (!IF_QFULL(sc->isdn_linktab->tx_queue)))
802 NDBGL4(L4_TELDBG, "i4btel%d, filt writable", unit);
807 NDBGL4(L4_TELDBG, "i4bteld%d, filt writable", unit);
817 /*===========================================================================*
818 * ISDN INTERFACE ROUTINES
819 *===========================================================================*/
821 /*---------------------------------------------------------------------------*
822 * this routine is called from L4 handler at connect time
823 *---------------------------------------------------------------------------*/
825 tel_connect(int unit, void *cdp)
827 tel_sc_t *sc = &tel_sc[unit][FUNCTEL];
831 sc->cdp = (call_desc_t *)cdp;
833 sc->devstate |= ST_CONNECTED;
837 sc = &tel_sc[unit][FUNCDIAL];
839 if(sc->devstate == ST_ISOPEN)
841 sc->result = RSP_CONN;
843 if(sc->devstate & ST_RDWAITDATA)
845 sc->devstate &= ~ST_RDWAITDATA;
846 wakeup((caddr_t) &sc->result);
848 KNOTE(&sc->kqp.ki_note, 0);
852 /*---------------------------------------------------------------------------*
853 * this routine is called from L4 handler at disconnect time
854 *---------------------------------------------------------------------------*/
856 tel_disconnect(int unit, void *cdp)
858 /* call_desc_t *cd = (call_desc_t *)cdp; */
860 tel_sc_t *sc = &tel_sc[unit][FUNCTEL];
864 sc->devstate &= ~ST_CONNECTED;
866 if(sc->devstate & ST_RDWAITDATA)
868 sc->devstate &= ~ST_RDWAITDATA;
869 wakeup((caddr_t) &sc->isdn_linktab->rx_queue);
872 if(sc->devstate & ST_WRWAITEMPTY)
874 sc->devstate &= ~ST_WRWAITEMPTY;
875 wakeup((caddr_t) &sc->isdn_linktab->tx_queue);
880 sc = &tel_sc[unit][FUNCDIAL];
882 if(sc->devstate & ST_ISOPEN)
884 sc->result = RSP_HUP;
886 if(sc->devstate & ST_RDWAITDATA)
888 sc->devstate &= ~ST_RDWAITDATA;
889 wakeup((caddr_t) &sc->result);
891 KNOTE(&sc->kqp.ki_note, 0);
893 if (sc->devstate & ST_TONE) {
894 sc->devstate &= ~ST_TONE;
895 wakeup((caddr_t) &sc->tones);
900 /*---------------------------------------------------------------------------*
901 * feedback from daemon in case of dial problems
902 *---------------------------------------------------------------------------*/
904 tel_dialresponse(int unit, int status, cause_t cause)
906 tel_sc_t *sc = &tel_sc[unit][FUNCDIAL];
908 NDBGL4(L4_TELDBG, "i4btel%d, status=%d, cause=0x%4x", unit, status, cause);
910 if((sc->devstate == ST_ISOPEN) && status)
912 sc->result = RSP_NOA;
914 if(sc->devstate & ST_RDWAITDATA)
916 sc->devstate &= ~ST_RDWAITDATA;
917 wakeup((caddr_t) &sc->result);
919 KNOTE(&sc->kqp.ki_note, 0);
923 /*---------------------------------------------------------------------------*
925 *---------------------------------------------------------------------------*/
927 tel_updown(int unit, int updown)
931 /*---------------------------------------------------------------------------*
932 * this routine is called from the HSCX interrupt handler
933 * when a new frame (mbuf) has been received and was put on
935 *---------------------------------------------------------------------------*/
937 tel_rx_data_rdy(int unit)
939 tel_sc_t *sc = &tel_sc[unit][FUNCTEL];
941 if(sc->devstate & ST_RDWAITDATA)
943 sc->devstate &= ~ST_RDWAITDATA;
944 wakeup((caddr_t) &sc->isdn_linktab->rx_queue);
946 KNOTE(&sc->kqp.ki_note, 0);
949 /*---------------------------------------------------------------------------*
950 * this routine is called from the HSCX interrupt handler
951 * when the last frame has been sent out and there is no
952 * further frame (mbuf) in the tx queue.
953 *---------------------------------------------------------------------------*/
955 tel_tx_queue_empty(int unit)
957 tel_sc_t *sc = &tel_sc[unit][FUNCTEL];
959 if(sc->devstate & ST_WRWAITEMPTY)
961 sc->devstate &= ~ST_WRWAITEMPTY;
962 wakeup((caddr_t) &sc->isdn_linktab->tx_queue);
964 if(sc->devstate & ST_TONE) {
967 KNOTE(&sc->kqp.ki_note, 0);
971 /*---------------------------------------------------------------------------*
972 * this routine is called from the HSCX interrupt handler
973 * each time a packet is received or transmitted.
974 *---------------------------------------------------------------------------*/
976 tel_activity(int unit, int rxtx)
978 if(tel_sc[unit][FUNCTEL].cdp)
979 tel_sc[unit][FUNCTEL].cdp->last_active_time = SECOND;
982 /*---------------------------------------------------------------------------*
983 * return this drivers linktab address
984 *---------------------------------------------------------------------------*/
986 tel_ret_linktab(int unit)
988 tel_sc_t *sc = &tel_sc[unit][FUNCTEL];
990 tel_init_linktab(unit);
991 return(&sc->drvr_linktab);
994 /*---------------------------------------------------------------------------*
995 * setup the isdn_linktab for this driver
996 *---------------------------------------------------------------------------*/
998 tel_set_linktab(int unit, isdn_link_t *ilt)
1000 tel_sc_t *sc = &tel_sc[unit][FUNCTEL];
1001 sc->isdn_linktab = ilt;
1004 /*---------------------------------------------------------------------------*
1005 * initialize this drivers linktab
1006 *---------------------------------------------------------------------------*/
1008 tel_init_linktab(int unit)
1010 tel_sc_t *sc = &tel_sc[unit][FUNCTEL];
1012 sc->drvr_linktab.unit = unit;
1013 sc->drvr_linktab.bch_rx_data_ready = tel_rx_data_rdy;
1014 sc->drvr_linktab.bch_tx_queue_empty = tel_tx_queue_empty;
1015 sc->drvr_linktab.bch_activity = tel_activity;
1016 sc->drvr_linktab.line_connected = tel_connect;
1017 sc->drvr_linktab.line_disconnected = tel_disconnect;
1018 sc->drvr_linktab.dial_response = tel_dialresponse;
1019 sc->drvr_linktab.updown_ind = tel_updown;
1022 /*===========================================================================*
1023 * AUDIO FORMAT CONVERSION (produced by running g711conv)
1024 *===========================================================================*/
1026 /*---------------------------------------------------------------------------*
1027 * A-law to u-law conversion
1028 *---------------------------------------------------------------------------*/
1029 static unsigned char a2u_tab[256] = {
1030 /* 00 */ 0x2a, 0x2b, 0x28, 0x29, 0x2e, 0x2f, 0x2c, 0x2d,
1031 /* 08 */ 0x22, 0x23, 0x20, 0x21, 0x26, 0x27, 0x24, 0x25,
1032 /* 10 */ 0x39, 0x3a, 0x37, 0x38, 0x3d, 0x3e, 0x3b, 0x3c,
1033 /* 18 */ 0x31, 0x32, 0x30, 0x30, 0x35, 0x36, 0x33, 0x34,
1034 /* 20 */ 0x0a, 0x0b, 0x08, 0x09, 0x0e, 0x0f, 0x0c, 0x0d,
1035 /* 28 */ 0x02, 0x03, 0x00, 0x01, 0x06, 0x07, 0x04, 0x05,
1036 /* 30 */ 0x1a, 0x1b, 0x18, 0x19, 0x1e, 0x1f, 0x1c, 0x1d,
1037 /* 38 */ 0x12, 0x13, 0x10, 0x11, 0x16, 0x17, 0x14, 0x15,
1038 /* 40 */ 0x62, 0x63, 0x60, 0x61, 0x66, 0x67, 0x64, 0x65,
1039 /* 48 */ 0x5d, 0x5d, 0x5c, 0x5c, 0x5f, 0x5f, 0x5e, 0x5e,
1040 /* 50 */ 0x74, 0x76, 0x70, 0x72, 0x7c, 0x7e, 0x78, 0x7a,
1041 /* 58 */ 0x6a, 0x6b, 0x68, 0x69, 0x6e, 0x6f, 0x6c, 0x6d,
1042 /* 60 */ 0x48, 0x49, 0x46, 0x47, 0x4c, 0x4d, 0x4a, 0x4b,
1043 /* 68 */ 0x40, 0x41, 0x3f, 0x3f, 0x44, 0x45, 0x42, 0x43,
1044 /* 70 */ 0x56, 0x57, 0x54, 0x55, 0x5a, 0x5b, 0x58, 0x59,
1045 /* 78 */ 0x4f, 0x4f, 0x4e, 0x4e, 0x52, 0x53, 0x50, 0x51,
1046 /* 80 */ 0xaa, 0xab, 0xa8, 0xa9, 0xae, 0xaf, 0xac, 0xad,
1047 /* 88 */ 0xa2, 0xa3, 0xa0, 0xa1, 0xa6, 0xa7, 0xa4, 0xa5,
1048 /* 90 */ 0xb9, 0xba, 0xb7, 0xb8, 0xbd, 0xbe, 0xbb, 0xbc,
1049 /* 98 */ 0xb1, 0xb2, 0xb0, 0xb0, 0xb5, 0xb6, 0xb3, 0xb4,
1050 /* a0 */ 0x8a, 0x8b, 0x88, 0x89, 0x8e, 0x8f, 0x8c, 0x8d,
1051 /* a8 */ 0x82, 0x83, 0x80, 0x81, 0x86, 0x87, 0x84, 0x85,
1052 /* b0 */ 0x9a, 0x9b, 0x98, 0x99, 0x9e, 0x9f, 0x9c, 0x9d,
1053 /* b8 */ 0x92, 0x93, 0x90, 0x91, 0x96, 0x97, 0x94, 0x95,
1054 /* c0 */ 0xe2, 0xe3, 0xe0, 0xe1, 0xe6, 0xe7, 0xe4, 0xe5,
1055 /* c8 */ 0xdd, 0xdd, 0xdc, 0xdc, 0xdf, 0xdf, 0xde, 0xde,
1056 /* d0 */ 0xf4, 0xf6, 0xf0, 0xf2, 0xfc, 0xfe, 0xf8, 0xfa,
1057 /* d8 */ 0xea, 0xeb, 0xe8, 0xe9, 0xee, 0xef, 0xec, 0xed,
1058 /* e0 */ 0xc8, 0xc9, 0xc6, 0xc7, 0xcc, 0xcd, 0xca, 0xcb,
1059 /* e8 */ 0xc0, 0xc1, 0xbf, 0xbf, 0xc4, 0xc5, 0xc2, 0xc3,
1060 /* f0 */ 0xd6, 0xd7, 0xd4, 0xd5, 0xda, 0xdb, 0xd8, 0xd9,
1061 /* f8 */ 0xcf, 0xcf, 0xce, 0xce, 0xd2, 0xd3, 0xd0, 0xd1
1064 /*---------------------------------------------------------------------------*
1065 * u-law to A-law conversion
1066 *---------------------------------------------------------------------------*/
1067 static unsigned char u2a_tab[256] = {
1068 /* 00 */ 0x2a, 0x2b, 0x28, 0x29, 0x2e, 0x2f, 0x2c, 0x2d,
1069 /* 08 */ 0x22, 0x23, 0x20, 0x21, 0x26, 0x27, 0x24, 0x25,
1070 /* 10 */ 0x3a, 0x3b, 0x38, 0x39, 0x3e, 0x3f, 0x3c, 0x3d,
1071 /* 18 */ 0x32, 0x33, 0x30, 0x31, 0x36, 0x37, 0x34, 0x35,
1072 /* 20 */ 0x0a, 0x0b, 0x08, 0x09, 0x0e, 0x0f, 0x0c, 0x0d,
1073 /* 28 */ 0x02, 0x03, 0x00, 0x01, 0x06, 0x07, 0x04, 0x05,
1074 /* 30 */ 0x1b, 0x18, 0x19, 0x1e, 0x1f, 0x1c, 0x1d, 0x12,
1075 /* 38 */ 0x13, 0x10, 0x11, 0x16, 0x17, 0x14, 0x15, 0x6a,
1076 /* 40 */ 0x68, 0x69, 0x6e, 0x6f, 0x6c, 0x6d, 0x62, 0x63,
1077 /* 48 */ 0x60, 0x61, 0x66, 0x67, 0x64, 0x65, 0x7a, 0x78,
1078 /* 50 */ 0x7e, 0x7f, 0x7c, 0x7d, 0x72, 0x73, 0x70, 0x71,
1079 /* 58 */ 0x76, 0x77, 0x74, 0x75, 0x4b, 0x49, 0x4f, 0x4d,
1080 /* 60 */ 0x42, 0x43, 0x40, 0x41, 0x46, 0x47, 0x44, 0x45,
1081 /* 68 */ 0x5a, 0x5b, 0x58, 0x59, 0x5e, 0x5f, 0x5c, 0x5d,
1082 /* 70 */ 0x52, 0x52, 0x53, 0x53, 0x50, 0x50, 0x51, 0x51,
1083 /* 78 */ 0x56, 0x56, 0x57, 0x57, 0x54, 0x54, 0x55, 0x55,
1084 /* 80 */ 0xaa, 0xab, 0xa8, 0xa9, 0xae, 0xaf, 0xac, 0xad,
1085 /* 88 */ 0xa2, 0xa3, 0xa0, 0xa1, 0xa6, 0xa7, 0xa4, 0xa5,
1086 /* 90 */ 0xba, 0xbb, 0xb8, 0xb9, 0xbe, 0xbf, 0xbc, 0xbd,
1087 /* 98 */ 0xb2, 0xb3, 0xb0, 0xb1, 0xb6, 0xb7, 0xb4, 0xb5,
1088 /* a0 */ 0x8a, 0x8b, 0x88, 0x89, 0x8e, 0x8f, 0x8c, 0x8d,
1089 /* a8 */ 0x82, 0x83, 0x80, 0x81, 0x86, 0x87, 0x84, 0x85,
1090 /* b0 */ 0x9b, 0x98, 0x99, 0x9e, 0x9f, 0x9c, 0x9d, 0x92,
1091 /* b8 */ 0x93, 0x90, 0x91, 0x96, 0x97, 0x94, 0x95, 0xea,
1092 /* c0 */ 0xe8, 0xe9, 0xee, 0xef, 0xec, 0xed, 0xe2, 0xe3,
1093 /* c8 */ 0xe0, 0xe1, 0xe6, 0xe7, 0xe4, 0xe5, 0xfa, 0xf8,
1094 /* d0 */ 0xfe, 0xff, 0xfc, 0xfd, 0xf2, 0xf3, 0xf0, 0xf1,
1095 /* d8 */ 0xf6, 0xf7, 0xf4, 0xf5, 0xcb, 0xc9, 0xcf, 0xcd,
1096 /* e0 */ 0xc2, 0xc3, 0xc0, 0xc1, 0xc6, 0xc7, 0xc4, 0xc5,
1097 /* e8 */ 0xda, 0xdb, 0xd8, 0xd9, 0xde, 0xdf, 0xdc, 0xdd,
1098 /* f0 */ 0xd2, 0xd2, 0xd3, 0xd3, 0xd0, 0xd0, 0xd1, 0xd1,
1099 /* f8 */ 0xd6, 0xd6, 0xd7, 0xd7, 0xd4, 0xd4, 0xd5, 0xd5
1102 /*---------------------------------------------------------------------------*
1103 * reverse bits in a byte
1104 *---------------------------------------------------------------------------*/
1105 static unsigned char bitreverse[256] = {
1106 /* 00 */ 0x00, 0x80, 0x40, 0xc0, 0x20, 0xa0, 0x60, 0xe0,
1107 /* 08 */ 0x10, 0x90, 0x50, 0xd0, 0x30, 0xb0, 0x70, 0xf0,
1108 /* 10 */ 0x08, 0x88, 0x48, 0xc8, 0x28, 0xa8, 0x68, 0xe8,
1109 /* 18 */ 0x18, 0x98, 0x58, 0xd8, 0x38, 0xb8, 0x78, 0xf8,
1110 /* 20 */ 0x04, 0x84, 0x44, 0xc4, 0x24, 0xa4, 0x64, 0xe4,
1111 /* 28 */ 0x14, 0x94, 0x54, 0xd4, 0x34, 0xb4, 0x74, 0xf4,
1112 /* 30 */ 0x0c, 0x8c, 0x4c, 0xcc, 0x2c, 0xac, 0x6c, 0xec,
1113 /* 38 */ 0x1c, 0x9c, 0x5c, 0xdc, 0x3c, 0xbc, 0x7c, 0xfc,
1114 /* 40 */ 0x02, 0x82, 0x42, 0xc2, 0x22, 0xa2, 0x62, 0xe2,
1115 /* 48 */ 0x12, 0x92, 0x52, 0xd2, 0x32, 0xb2, 0x72, 0xf2,
1116 /* 50 */ 0x0a, 0x8a, 0x4a, 0xca, 0x2a, 0xaa, 0x6a, 0xea,
1117 /* 58 */ 0x1a, 0x9a, 0x5a, 0xda, 0x3a, 0xba, 0x7a, 0xfa,
1118 /* 60 */ 0x06, 0x86, 0x46, 0xc6, 0x26, 0xa6, 0x66, 0xe6,
1119 /* 68 */ 0x16, 0x96, 0x56, 0xd6, 0x36, 0xb6, 0x76, 0xf6,
1120 /* 70 */ 0x0e, 0x8e, 0x4e, 0xce, 0x2e, 0xae, 0x6e, 0xee,
1121 /* 78 */ 0x1e, 0x9e, 0x5e, 0xde, 0x3e, 0xbe, 0x7e, 0xfe,
1122 /* 80 */ 0x01, 0x81, 0x41, 0xc1, 0x21, 0xa1, 0x61, 0xe1,
1123 /* 88 */ 0x11, 0x91, 0x51, 0xd1, 0x31, 0xb1, 0x71, 0xf1,
1124 /* 90 */ 0x09, 0x89, 0x49, 0xc9, 0x29, 0xa9, 0x69, 0xe9,
1125 /* 98 */ 0x19, 0x99, 0x59, 0xd9, 0x39, 0xb9, 0x79, 0xf9,
1126 /* a0 */ 0x05, 0x85, 0x45, 0xc5, 0x25, 0xa5, 0x65, 0xe5,
1127 /* a8 */ 0x15, 0x95, 0x55, 0xd5, 0x35, 0xb5, 0x75, 0xf5,
1128 /* b0 */ 0x0d, 0x8d, 0x4d, 0xcd, 0x2d, 0xad, 0x6d, 0xed,
1129 /* b8 */ 0x1d, 0x9d, 0x5d, 0xdd, 0x3d, 0xbd, 0x7d, 0xfd,
1130 /* c0 */ 0x03, 0x83, 0x43, 0xc3, 0x23, 0xa3, 0x63, 0xe3,
1131 /* c8 */ 0x13, 0x93, 0x53, 0xd3, 0x33, 0xb3, 0x73, 0xf3,
1132 /* d0 */ 0x0b, 0x8b, 0x4b, 0xcb, 0x2b, 0xab, 0x6b, 0xeb,
1133 /* d8 */ 0x1b, 0x9b, 0x5b, 0xdb, 0x3b, 0xbb, 0x7b, 0xfb,
1134 /* e0 */ 0x07, 0x87, 0x47, 0xc7, 0x27, 0xa7, 0x67, 0xe7,
1135 /* e8 */ 0x17, 0x97, 0x57, 0xd7, 0x37, 0xb7, 0x77, 0xf7,
1136 /* f0 */ 0x0f, 0x8f, 0x4f, 0xcf, 0x2f, 0xaf, 0x6f, 0xef,
1137 /* f8 */ 0x1f, 0x9f, 0x5f, 0xdf, 0x3f, 0xbf, 0x7f, 0xff
1140 static u_char sinetab[8000] = { 213, 213, 213, 213, 213, 213, 213, 212,
1141 212, 212, 212, 212, 212, 215, 215, 215, 215, 215, 215, 214, 214,
1142 214, 214, 214, 214, 209, 209, 209, 209, 209, 209, 209, 208, 208,
1143 208, 208, 208, 208, 211, 211, 211, 211, 211, 211, 210, 210, 210,
1144 210, 210, 210, 221, 221, 221, 221, 221, 221, 220, 220, 220, 220,
1145 220, 220, 220, 223, 223, 223, 223, 223, 223, 222, 222, 222, 222,
1146 222, 222, 217, 217, 217, 217, 217, 217, 216, 216, 216, 216, 216,
1147 216, 216, 219, 219, 219, 219, 219, 219, 218, 218, 218, 218, 218,
1148 218, 197, 197, 197, 197, 197, 197, 196, 196, 196, 196, 196, 196,
1149 196, 199, 199, 199, 199, 199, 199, 198, 198, 198, 198, 198, 198,
1150 193, 193, 193, 193, 193, 193, 192, 192, 192, 192, 192, 192, 192,
1151 195, 195, 195, 195, 195, 195, 194, 194, 194, 194, 194, 194, 205,
1152 205, 205, 205, 205, 205, 204, 204, 204, 204, 204, 204, 204, 207,
1153 207, 207, 207, 207, 207, 206, 206, 206, 206, 206, 206, 201, 201,
1154 201, 201, 201, 201, 200, 200, 200, 200, 200, 200, 200, 203, 203,
1155 203, 203, 203, 203, 202, 202, 202, 202, 202, 202, 245, 245, 245,
1156 245, 245, 245, 245, 245, 245, 245, 245, 245, 245, 244, 244, 244,
1157 244, 244, 244, 244, 244, 244, 244, 244, 244, 247, 247, 247, 247,
1158 247, 247, 247, 247, 247, 247, 247, 247, 247, 246, 246, 246, 246,
1159 246, 246, 246, 246, 246, 246, 246, 246, 246, 241, 241, 241, 241,
1160 241, 241, 241, 241, 241, 241, 241, 241, 240, 240, 240, 240, 240,
1161 240, 240, 240, 240, 240, 240, 240, 240, 243, 243, 243, 243, 243,
1162 243, 243, 243, 243, 243, 243, 243, 243, 242, 242, 242, 242, 242,
1163 242, 242, 242, 242, 242, 242, 242, 242, 253, 253, 253, 253, 253,
1164 253, 253, 253, 253, 253, 253, 253, 253, 252, 252, 252, 252, 252,
1165 252, 252, 252, 252, 252, 252, 252, 255, 255, 255, 255, 255, 255,
1166 255, 255, 255, 255, 255, 255, 255, 254, 254, 254, 254, 254, 254,
1167 254, 254, 254, 254, 254, 254, 254, 249, 249, 249, 249, 249, 249,
1168 249, 249, 249, 249, 249, 249, 249, 248, 248, 248, 248, 248, 248,
1169 248, 248, 248, 248, 248, 248, 248, 251, 251, 251, 251, 251, 251,
1170 251, 251, 251, 251, 251, 251, 251, 250, 250, 250, 250, 250, 250,
1171 250, 250, 250, 250, 250, 250, 250, 229, 229, 229, 229, 229, 229,
1172 229, 229, 229, 229, 229, 229, 229, 229, 229, 229, 229, 229, 229,
1173 229, 229, 229, 229, 229, 229, 229, 228, 228, 228, 228, 228, 228,
1174 228, 228, 228, 228, 228, 228, 228, 228, 228, 228, 228, 228, 228,
1175 228, 228, 228, 228, 228, 228, 228, 228, 231, 231, 231, 231, 231,
1176 231, 231, 231, 231, 231, 231, 231, 231, 231, 231, 231, 231, 231,
1177 231, 231, 231, 231, 231, 231, 231, 231, 231, 230, 230, 230, 230,
1178 230, 230, 230, 230, 230, 230, 230, 230, 230, 230, 230, 230, 230,
1179 230, 230, 230, 230, 230, 230, 230, 230, 230, 225, 225, 225, 225,
1180 225, 225, 225, 225, 225, 225, 225, 225, 225, 225, 225, 225, 225,
1181 225, 225, 225, 225, 225, 225, 225, 225, 225, 225, 225, 224, 224,
1182 224, 224, 224, 224, 224, 224, 224, 224, 224, 224, 224, 224, 224,
1183 224, 224, 224, 224, 224, 224, 224, 224, 224, 224, 224, 224, 227,
1184 227, 227, 227, 227, 227, 227, 227, 227, 227, 227, 227, 227, 227,
1185 227, 227, 227, 227, 227, 227, 227, 227, 227, 227, 227, 227, 227,
1186 227, 226, 226, 226, 226, 226, 226, 226, 226, 226, 226, 226, 226,
1187 226, 226, 226, 226, 226, 226, 226, 226, 226, 226, 226, 226, 226,
1188 226, 226, 226, 237, 237, 237, 237, 237, 237, 237, 237, 237, 237,
1189 237, 237, 237, 237, 237, 237, 237, 237, 237, 237, 237, 237, 237,
1190 237, 237, 237, 237, 237, 236, 236, 236, 236, 236, 236, 236, 236,
1191 236, 236, 236, 236, 236, 236, 236, 236, 236, 236, 236, 236, 236,
1192 236, 236, 236, 236, 236, 236, 236, 236, 239, 239, 239, 239, 239,
1193 239, 239, 239, 239, 239, 239, 239, 239, 239, 239, 239, 239, 239,
1194 239, 239, 239, 239, 239, 239, 239, 239, 239, 239, 239, 238, 238,
1195 238, 238, 238, 238, 238, 238, 238, 238, 238, 238, 238, 238, 238,
1196 238, 238, 238, 238, 238, 238, 238, 238, 238, 238, 238, 238, 238,
1197 238, 233, 233, 233, 233, 233, 233, 233, 233, 233, 233, 233, 233,
1198 233, 233, 233, 233, 233, 233, 233, 233, 233, 233, 233, 233, 233,
1199 233, 233, 233, 233, 233, 232, 232, 232, 232, 232, 232, 232, 232,
1200 232, 232, 232, 232, 232, 232, 232, 232, 232, 232, 232, 232, 232,
1201 232, 232, 232, 232, 232, 232, 232, 232, 232, 232, 235, 235, 235,
1202 235, 235, 235, 235, 235, 235, 235, 235, 235, 235, 235, 235, 235,
1203 235, 235, 235, 235, 235, 235, 235, 235, 235, 235, 235, 235, 235,
1204 235, 235, 234, 234, 234, 234, 234, 234, 234, 234, 234, 234, 234,
1205 234, 234, 234, 234, 234, 234, 234, 234, 234, 234, 234, 234, 234,
1206 234, 234, 234, 234, 234, 234, 234, 149, 149, 149, 149, 149, 149,
1207 149, 149, 149, 149, 149, 149, 149, 149, 149, 149, 149, 149, 149,
1208 149, 149, 149, 149, 149, 149, 149, 149, 149, 149, 149, 149, 149,
1209 149, 149, 149, 149, 149, 149, 149, 149, 149, 149, 149, 149, 149,
1210 149, 149, 149, 149, 149, 149, 149, 149, 149, 149, 149, 149, 149,
1211 149, 149, 149, 149, 149, 149, 149, 148, 148, 148, 148, 148, 148,
1212 148, 148, 148, 148, 148, 148, 148, 148, 148, 148, 148, 148, 148,
1213 148, 148, 148, 148, 148, 148, 148, 148, 148, 148, 148, 148, 148,
1214 148, 148, 148, 148, 148, 148, 148, 148, 148, 148, 148, 148, 148,
1215 148, 148, 148, 148, 148, 148, 148, 148, 148, 148, 148, 148, 148,
1216 148, 148, 148, 148, 148, 148, 148, 148, 148, 148, 151, 151, 151,
1217 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151,
1218 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151,
1219 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151,
1220 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151,
1221 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151,
1222 151, 151, 151, 151, 150, 150, 150, 150, 150, 150, 150, 150, 150,
1223 150, 150, 150, 150, 150, 150, 150, 150, 150, 150, 150, 150, 150,
1224 150, 150, 150, 150, 150, 150, 150, 150, 150, 150, 150, 150, 150,
1225 150, 150, 150, 150, 150, 150, 150, 150, 150, 150, 150, 150, 150,
1226 150, 150, 150, 150, 150, 150, 150, 150, 150, 150, 150, 150, 150,
1227 150, 150, 150, 150, 150, 150, 150, 150, 150, 150, 150, 150, 150,
1228 150, 150, 150, 145, 145, 145, 145, 145, 145, 145, 145, 145, 145,
1229 145, 145, 145, 145, 145, 145, 145, 145, 145, 145, 145, 145, 145,
1230 145, 145, 145, 145, 145, 145, 145, 145, 145, 145, 145, 145, 145,
1231 145, 145, 145, 145, 145, 145, 145, 145, 145, 145, 145, 145, 145,
1232 145, 145, 145, 145, 145, 145, 145, 145, 145, 145, 145, 145, 145,
1233 145, 145, 145, 145, 145, 145, 145, 145, 145, 145, 145, 145, 145,
1234 145, 145, 145, 145, 145, 145, 145, 145, 144, 144, 144, 144, 144,
1235 144, 144, 144, 144, 144, 144, 144, 144, 144, 144, 144, 144, 144,
1236 144, 144, 144, 144, 144, 144, 144, 144, 144, 144, 144, 144, 144,
1237 144, 144, 144, 144, 144, 144, 144, 144, 144, 144, 144, 144, 144,
1238 144, 144, 144, 144, 144, 144, 144, 144, 144, 144, 144, 144, 144,
1239 144, 144, 144, 144, 144, 144, 144, 144, 144, 144, 144, 144, 144,
1240 144, 144, 144, 144, 144, 144, 144, 144, 144, 144, 144, 144, 144,
1241 144, 144, 144, 144, 144, 144, 144, 144, 144, 147, 147, 147, 147,
1242 147, 147, 147, 147, 147, 147, 147, 147, 147, 147, 147, 147, 147,
1243 147, 147, 147, 147, 147, 147, 147, 147, 147, 147, 147, 147, 147,
1244 147, 147, 147, 147, 147, 147, 147, 147, 147, 147, 147, 147, 147,
1245 147, 147, 147, 147, 147, 147, 147, 147, 147, 147, 147, 147, 147,
1246 147, 147, 147, 147, 147, 147, 147, 147, 147, 147, 147, 147, 147,
1247 147, 147, 147, 147, 147, 147, 147, 147, 147, 147, 147, 147, 147,
1248 147, 147, 147, 147, 147, 147, 147, 147, 147, 147, 147, 147, 147,
1249 147, 147, 147, 147, 147, 147, 147, 147, 147, 147, 146, 146, 146,
1250 146, 146, 146, 146, 146, 146, 146, 146, 146, 146, 146, 146, 146,
1251 146, 146, 146, 146, 146, 146, 146, 146, 146, 146, 146, 146, 146,
1252 146, 146, 146, 146, 146, 146, 146, 146, 146, 146, 146, 146, 146,
1253 146, 146, 146, 146, 146, 146, 146, 146, 146, 146, 146, 146, 146,
1254 146, 146, 146, 146, 146, 146, 146, 146, 146, 146, 146, 146, 146,
1255 146, 146, 146, 146, 146, 146, 146, 146, 146, 146, 146, 146, 146,
1256 146, 146, 146, 146, 146, 146, 146, 146, 146, 146, 146, 146, 146,
1257 146, 146, 146, 146, 146, 146, 146, 146, 146, 146, 146, 146, 146,
1258 146, 146, 146, 146, 146, 146, 146, 146, 146, 146, 146, 146, 146,
1259 146, 146, 146, 146, 146, 146, 157, 157, 157, 157, 157, 157, 157,
1260 157, 157, 157, 157, 157, 157, 157, 157, 157, 157, 157, 157, 157,
1261 157, 157, 157, 157, 157, 157, 157, 157, 157, 157, 157, 157, 157,
1262 157, 157, 157, 157, 157, 157, 157, 157, 157, 157, 157, 157, 157,
1263 157, 157, 157, 157, 157, 157, 157, 157, 157, 157, 157, 157, 157,
1264 157, 157, 157, 157, 157, 157, 157, 157, 157, 157, 157, 157, 157,
1265 157, 157, 157, 157, 157, 157, 157, 157, 157, 157, 157, 157, 157,
1266 157, 157, 157, 157, 157, 157, 157, 157, 157, 157, 157, 157, 157,
1267 157, 157, 157, 157, 157, 157, 157, 157, 157, 157, 157, 157, 157,
1268 157, 157, 157, 157, 157, 157, 157, 157, 157, 157, 157, 157, 157,
1269 157, 157, 157, 157, 157, 157, 157, 157, 157, 157, 157, 157, 157,
1270 157, 157, 157, 157, 157, 157, 157, 157, 157, 157, 157, 157, 157,
1271 157, 157, 157, 157, 157, 157, 157, 157, 157, 157, 157, 157, 157,
1272 157, 157, 157, 157, 157, 157, 157, 157, 157, 157, 157, 157, 157,
1273 156, 156, 156, 156, 156, 156, 156, 156, 156, 156, 156, 156, 156,
1274 156, 156, 156, 156, 156, 156, 156, 156, 156, 156, 156, 156, 156,
1275 156, 156, 156, 156, 156, 156, 156, 156, 156, 156, 156, 156, 156,
1276 156, 156, 156, 156, 156, 156, 156, 156, 156, 156, 156, 156, 156,
1277 156, 156, 156, 156, 156, 156, 156, 156, 156, 156, 156, 156, 156,
1278 156, 156, 156, 156, 156, 156, 156, 156, 156, 156, 156, 156, 156,
1279 156, 156, 156, 156, 156, 156, 156, 156, 156, 156, 156, 156, 156,
1280 156, 156, 156, 156, 156, 156, 156, 156, 156, 156, 156, 156, 156,
1281 156, 156, 156, 156, 156, 156, 156, 156, 156, 156, 156, 156, 156,
1282 156, 156, 156, 156, 156, 156, 156, 156, 156, 156, 156, 156, 156,
1283 156, 156, 156, 156, 156, 156, 156, 156, 156, 156, 156, 156, 156,
1284 156, 156, 156, 156, 156, 156, 156, 156, 156, 156, 156, 156, 156,
1285 156, 156, 156, 156, 156, 156, 156, 156, 156, 156, 156, 156, 156,
1286 156, 156, 156, 156, 156, 156, 156, 156, 156, 156, 156, 156, 156,
1287 156, 156, 156, 156, 156, 156, 156, 156, 156, 156, 156, 156, 156,
1288 156, 156, 156, 156, 156, 156, 156, 156, 156, 156, 156, 156, 156,
1289 156, 156, 156, 156, 156, 156, 156, 156, 156, 156, 156, 156, 156,
1290 156, 156, 156, 156, 156, 156, 156, 156, 156, 156, 156, 156, 156,
1291 156, 156, 156, 156, 156, 156, 156, 156, 156, 156, 156, 156, 156,
1292 156, 156, 156, 156, 156, 156, 156, 156, 156, 156, 156, 156, 156,
1293 156, 156, 156, 156, 156, 156, 156, 156, 156, 156, 156, 156, 156,
1294 156, 156, 156, 156, 156, 156, 156, 156, 156, 156, 156, 156, 156,
1295 156, 156, 156, 156, 156, 156, 156, 156, 156, 156, 156, 156, 156,
1296 156, 156, 156, 156, 156, 156, 156, 156, 156, 156, 156, 156, 156,
1297 156, 156, 156, 156, 156, 156, 156, 156, 156, 156, 156, 156, 156,
1298 156, 156, 156, 156, 156, 156, 156, 156, 156, 156, 156, 156, 156,
1299 156, 156, 156, 156, 156, 156, 156, 156, 156, 156, 156, 156, 156,
1300 156, 156, 156, 156, 156, 156, 156, 156, 156, 156, 156, 156, 156,
1301 156, 156, 156, 156, 156, 156, 156, 156, 156, 156, 156, 156, 156,
1302 156, 156, 156, 156, 156, 156, 156, 156, 156, 156, 156, 156, 156,
1303 156, 156, 156, 156, 156, 156, 156, 156, 156, 156, 156, 156, 156,
1304 156, 156, 156, 156, 156, 156, 156, 156, 156, 156, 156, 156, 156,
1305 156, 156, 156, 156, 156, 156, 156, 156, 156, 156, 156, 156, 156,
1306 156, 156, 156, 156, 156, 156, 156, 156, 156, 156, 156, 156, 156,
1307 156, 156, 156, 156, 156, 156, 156, 156, 156, 156, 156, 156, 156,
1308 156, 156, 156, 156, 156, 156, 156, 156, 156, 156, 156, 156, 156,
1309 156, 156, 156, 156, 156, 156, 156, 156, 156, 156, 156, 156, 156,
1310 156, 156, 156, 156, 156, 156, 156, 156, 156, 156, 156, 156, 156,
1311 156, 156, 156, 156, 156, 156, 156, 156, 156, 156, 156, 156, 156,
1312 156, 156, 156, 156, 156, 156, 156, 156, 156, 156, 156, 156, 156,
1313 156, 156, 156, 156, 156, 156, 156, 156, 156, 156, 156, 156, 156,
1314 156, 156, 156, 156, 156, 156, 156, 156, 156, 156, 156, 156, 156,
1315 156, 156, 156, 156, 156, 156, 156, 157, 157, 157, 157, 157, 157,
1316 157, 157, 157, 157, 157, 157, 157, 157, 157, 157, 157, 157, 157,
1317 157, 157, 157, 157, 157, 157, 157, 157, 157, 157, 157, 157, 157,
1318 157, 157, 157, 157, 157, 157, 157, 157, 157, 157, 157, 157, 157,
1319 157, 157, 157, 157, 157, 157, 157, 157, 157, 157, 157, 157, 157,
1320 157, 157, 157, 157, 157, 157, 157, 157, 157, 157, 157, 157, 157,
1321 157, 157, 157, 157, 157, 157, 157, 157, 157, 157, 157, 157, 157,
1322 157, 157, 157, 157, 157, 157, 157, 157, 157, 157, 157, 157, 157,
1323 157, 157, 157, 157, 157, 157, 157, 157, 157, 157, 157, 157, 157,
1324 157, 157, 157, 157, 157, 157, 157, 157, 157, 157, 157, 157, 157,
1325 157, 157, 157, 157, 157, 157, 157, 157, 157, 157, 157, 157, 157,
1326 157, 157, 157, 157, 157, 157, 157, 157, 157, 157, 157, 157, 157,
1327 157, 157, 157, 157, 157, 157, 157, 157, 157, 157, 157, 157, 157,
1328 157, 157, 157, 157, 157, 157, 157, 157, 157, 157, 157, 157, 157,
1329 157, 146, 146, 146, 146, 146, 146, 146, 146, 146, 146, 146, 146,
1330 146, 146, 146, 146, 146, 146, 146, 146, 146, 146, 146, 146, 146,
1331 146, 146, 146, 146, 146, 146, 146, 146, 146, 146, 146, 146, 146,
1332 146, 146, 146, 146, 146, 146, 146, 146, 146, 146, 146, 146, 146,
1333 146, 146, 146, 146, 146, 146, 146, 146, 146, 146, 146, 146, 146,
1334 146, 146, 146, 146, 146, 146, 146, 146, 146, 146, 146, 146, 146,
1335 146, 146, 146, 146, 146, 146, 146, 146, 146, 146, 146, 146, 146,
1336 146, 146, 146, 146, 146, 146, 146, 146, 146, 146, 146, 146, 146,
1337 146, 146, 146, 146, 146, 146, 146, 146, 146, 146, 146, 146, 146,
1338 146, 146, 146, 146, 146, 146, 146, 146, 146, 146, 147, 147, 147,
1339 147, 147, 147, 147, 147, 147, 147, 147, 147, 147, 147, 147, 147,
1340 147, 147, 147, 147, 147, 147, 147, 147, 147, 147, 147, 147, 147,
1341 147, 147, 147, 147, 147, 147, 147, 147, 147, 147, 147, 147, 147,
1342 147, 147, 147, 147, 147, 147, 147, 147, 147, 147, 147, 147, 147,
1343 147, 147, 147, 147, 147, 147, 147, 147, 147, 147, 147, 147, 147,
1344 147, 147, 147, 147, 147, 147, 147, 147, 147, 147, 147, 147, 147,
1345 147, 147, 147, 147, 147, 147, 147, 147, 147, 147, 147, 147, 147,
1346 147, 147, 147, 147, 147, 147, 147, 147, 147, 147, 147, 144, 144,
1347 144, 144, 144, 144, 144, 144, 144, 144, 144, 144, 144, 144, 144,
1348 144, 144, 144, 144, 144, 144, 144, 144, 144, 144, 144, 144, 144,
1349 144, 144, 144, 144, 144, 144, 144, 144, 144, 144, 144, 144, 144,
1350 144, 144, 144, 144, 144, 144, 144, 144, 144, 144, 144, 144, 144,
1351 144, 144, 144, 144, 144, 144, 144, 144, 144, 144, 144, 144, 144,
1352 144, 144, 144, 144, 144, 144, 144, 144, 144, 144, 144, 144, 144,
1353 144, 144, 144, 144, 144, 144, 144, 144, 144, 144, 144, 144, 145,
1354 145, 145, 145, 145, 145, 145, 145, 145, 145, 145, 145, 145, 145,
1355 145, 145, 145, 145, 145, 145, 145, 145, 145, 145, 145, 145, 145,
1356 145, 145, 145, 145, 145, 145, 145, 145, 145, 145, 145, 145, 145,
1357 145, 145, 145, 145, 145, 145, 145, 145, 145, 145, 145, 145, 145,
1358 145, 145, 145, 145, 145, 145, 145, 145, 145, 145, 145, 145, 145,
1359 145, 145, 145, 145, 145, 145, 145, 145, 145, 145, 145, 145, 145,
1360 145, 145, 145, 145, 150, 150, 150, 150, 150, 150, 150, 150, 150,
1361 150, 150, 150, 150, 150, 150, 150, 150, 150, 150, 150, 150, 150,
1362 150, 150, 150, 150, 150, 150, 150, 150, 150, 150, 150, 150, 150,
1363 150, 150, 150, 150, 150, 150, 150, 150, 150, 150, 150, 150, 150,
1364 150, 150, 150, 150, 150, 150, 150, 150, 150, 150, 150, 150, 150,
1365 150, 150, 150, 150, 150, 150, 150, 150, 150, 150, 150, 150, 150,
1366 150, 150, 150, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151,
1367 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151,
1368 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151,
1369 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151,
1370 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151,
1371 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 148, 148, 148,
1372 148, 148, 148, 148, 148, 148, 148, 148, 148, 148, 148, 148, 148,
1373 148, 148, 148, 148, 148, 148, 148, 148, 148, 148, 148, 148, 148,
1374 148, 148, 148, 148, 148, 148, 148, 148, 148, 148, 148, 148, 148,
1375 148, 148, 148, 148, 148, 148, 148, 148, 148, 148, 148, 148, 148,
1376 148, 148, 148, 148, 148, 148, 148, 148, 148, 148, 148, 148, 148,
1377 149, 149, 149, 149, 149, 149, 149, 149, 149, 149, 149, 149, 149,
1378 149, 149, 149, 149, 149, 149, 149, 149, 149, 149, 149, 149, 149,
1379 149, 149, 149, 149, 149, 149, 149, 149, 149, 149, 149, 149, 149,
1380 149, 149, 149, 149, 149, 149, 149, 149, 149, 149, 149, 149, 149,
1381 149, 149, 149, 149, 149, 149, 149, 149, 149, 149, 149, 149, 149,
1382 234, 234, 234, 234, 234, 234, 234, 234, 234, 234, 234, 234, 234,
1383 234, 234, 234, 234, 234, 234, 234, 234, 234, 234, 234, 234, 234,
1384 234, 234, 234, 234, 234, 235, 235, 235, 235, 235, 235, 235, 235,
1385 235, 235, 235, 235, 235, 235, 235, 235, 235, 235, 235, 235, 235,
1386 235, 235, 235, 235, 235, 235, 235, 235, 235, 235, 232, 232, 232,
1387 232, 232, 232, 232, 232, 232, 232, 232, 232, 232, 232, 232, 232,
1388 232, 232, 232, 232, 232, 232, 232, 232, 232, 232, 232, 232, 232,
1389 232, 232, 233, 233, 233, 233, 233, 233, 233, 233, 233, 233, 233,
1390 233, 233, 233, 233, 233, 233, 233, 233, 233, 233, 233, 233, 233,
1391 233, 233, 233, 233, 233, 233, 238, 238, 238, 238, 238, 238, 238,
1392 238, 238, 238, 238, 238, 238, 238, 238, 238, 238, 238, 238, 238,
1393 238, 238, 238, 238, 238, 238, 238, 238, 238, 239, 239, 239, 239,
1394 239, 239, 239, 239, 239, 239, 239, 239, 239, 239, 239, 239, 239,
1395 239, 239, 239, 239, 239, 239, 239, 239, 239, 239, 239, 239, 236,
1396 236, 236, 236, 236, 236, 236, 236, 236, 236, 236, 236, 236, 236,
1397 236, 236, 236, 236, 236, 236, 236, 236, 236, 236, 236, 236, 236,
1398 236, 236, 237, 237, 237, 237, 237, 237, 237, 237, 237, 237, 237,
1399 237, 237, 237, 237, 237, 237, 237, 237, 237, 237, 237, 237, 237,
1400 237, 237, 237, 237, 226, 226, 226, 226, 226, 226, 226, 226, 226,
1401 226, 226, 226, 226, 226, 226, 226, 226, 226, 226, 226, 226, 226,
1402 226, 226, 226, 226, 226, 226, 227, 227, 227, 227, 227, 227, 227,
1403 227, 227, 227, 227, 227, 227, 227, 227, 227, 227, 227, 227, 227,
1404 227, 227, 227, 227, 227, 227, 227, 227, 224, 224, 224, 224, 224,
1405 224, 224, 224, 224, 224, 224, 224, 224, 224, 224, 224, 224, 224,
1406 224, 224, 224, 224, 224, 224, 224, 224, 224, 225, 225, 225, 225,
1407 225, 225, 225, 225, 225, 225, 225, 225, 225, 225, 225, 225, 225,
1408 225, 225, 225, 225, 225, 225, 225, 225, 225, 225, 225, 230, 230,
1409 230, 230, 230, 230, 230, 230, 230, 230, 230, 230, 230, 230, 230,
1410 230, 230, 230, 230, 230, 230, 230, 230, 230, 230, 230, 231, 231,
1411 231, 231, 231, 231, 231, 231, 231, 231, 231, 231, 231, 231, 231,
1412 231, 231, 231, 231, 231, 231, 231, 231, 231, 231, 231, 231, 228,
1413 228, 228, 228, 228, 228, 228, 228, 228, 228, 228, 228, 228, 228,
1414 228, 228, 228, 228, 228, 228, 228, 228, 228, 228, 228, 228, 228,
1415 229, 229, 229, 229, 229, 229, 229, 229, 229, 229, 229, 229, 229,
1416 229, 229, 229, 229, 229, 229, 229, 229, 229, 229, 229, 229, 229,
1417 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250,
1418 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251,
1419 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248,
1420 249, 249, 249, 249, 249, 249, 249, 249, 249, 249, 249, 249, 249,
1421 254, 254, 254, 254, 254, 254, 254, 254, 254, 254, 254, 254, 254,
1422 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255,
1423 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 253,
1424 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 242,
1425 242, 242, 242, 242, 242, 242, 242, 242, 242, 242, 242, 242, 243,
1426 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 240,
1427 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 241,
1428 241, 241, 241, 241, 241, 241, 241, 241, 241, 241, 241, 246, 246,
1429 246, 246, 246, 246, 246, 246, 246, 246, 246, 246, 246, 247, 247,
1430 247, 247, 247, 247, 247, 247, 247, 247, 247, 247, 247, 244, 244,
1431 244, 244, 244, 244, 244, 244, 244, 244, 244, 244, 245, 245, 245,
1432 245, 245, 245, 245, 245, 245, 245, 245, 245, 245, 202, 202, 202,
1433 202, 202, 202, 203, 203, 203, 203, 203, 203, 200, 200, 200, 200,
1434 200, 200, 200, 201, 201, 201, 201, 201, 201, 206, 206, 206, 206,
1435 206, 206, 207, 207, 207, 207, 207, 207, 204, 204, 204, 204, 204,
1436 204, 204, 205, 205, 205, 205, 205, 205, 194, 194, 194, 194, 194,
1437 194, 195, 195, 195, 195, 195, 195, 192, 192, 192, 192, 192, 192,
1438 192, 193, 193, 193, 193, 193, 193, 198, 198, 198, 198, 198, 198,
1439 199, 199, 199, 199, 199, 199, 196, 196, 196, 196, 196, 196, 196,
1440 197, 197, 197, 197, 197, 197, 218, 218, 218, 218, 218, 218, 219,
1441 219, 219, 219, 219, 219, 216, 216, 216, 216, 216, 216, 216, 217,
1442 217, 217, 217, 217, 217, 222, 222, 222, 222, 222, 222, 223, 223,
1443 223, 223, 223, 223, 220, 220, 220, 220, 220, 220, 220, 221, 221,
1444 221, 221, 221, 221, 210, 210, 210, 210, 210, 210, 211, 211, 211,
1445 211, 211, 211, 208, 208, 208, 208, 208, 208, 209, 209, 209, 209,
1446 209, 209, 209, 214, 214, 214, 214, 214, 214, 215, 215, 215, 215,
1447 215, 215, 212, 212, 212, 212, 212, 212, 213, 213, 213, 213, 213,
1448 213, 213, 90, 90, 90, 85, 85, 85, 85, 85, 85, 84, 84, 84, 84, 84,
1449 84, 87, 87, 87, 87, 87, 87, 86, 86, 86, 86, 86, 86, 81, 81, 81,
1450 81, 81, 81, 81, 80, 80, 80, 80, 80, 80, 83, 83, 83, 83, 83, 83,
1451 82, 82, 82, 82, 82, 82, 93, 93, 93, 93, 93, 93, 93, 92, 92, 92,
1452 92, 92, 92, 95, 95, 95, 95, 95, 95, 94, 94, 94, 94, 94, 94, 89,
1453 89, 89, 89, 89, 89, 88, 88, 88, 88, 88, 88, 88, 91, 91, 91, 91,
1454 91, 91, 90, 90, 90, 90, 90, 90, 69, 69, 69, 69, 69, 69, 68, 68,
1455 68, 68, 68, 68, 68, 71, 71, 71, 71, 71, 71, 70, 70, 70, 70, 70,
1456 70, 65, 65, 65, 65, 65, 65, 64, 64, 64, 64, 64, 64, 64, 67, 67,
1457 67, 67, 67, 67, 66, 66, 66, 66, 66, 66, 77, 77, 77, 77, 77, 77,
1458 76, 76, 76, 76, 76, 76, 76, 79, 79, 79, 79, 79, 79, 78, 78, 78,
1459 78, 78, 78, 73, 73, 73, 73, 73, 73, 73, 72, 72, 72, 72, 72, 72,
1460 75, 75, 75, 75, 75, 75, 74, 74, 74, 74, 74, 74, 117, 117, 117, 117,
1461 117, 117, 117, 117, 117, 117, 117, 117, 117, 116, 116, 116, 116,
1462 116, 116, 116, 116, 116, 116, 116, 116, 116, 119, 119, 119, 119,
1463 119, 119, 119, 119, 119, 119, 119, 119, 118, 118, 118, 118, 118,
1464 118, 118, 118, 118, 118, 118, 118, 118, 113, 113, 113, 113, 113,
1465 113, 113, 113, 113, 113, 113, 113, 113, 112, 112, 112, 112, 112,
1466 112, 112, 112, 112, 112, 112, 112, 115, 115, 115, 115, 115, 115,
1467 115, 115, 115, 115, 115, 115, 115, 114, 114, 114, 114, 114, 114,
1468 114, 114, 114, 114, 114, 114, 114, 125, 125, 125, 125, 125, 125,
1469 125, 125, 125, 125, 125, 125, 125, 124, 124, 124, 124, 124, 124,
1470 124, 124, 124, 124, 124, 124, 124, 127, 127, 127, 127, 127, 127,
1471 127, 127, 127, 127, 127, 127, 126, 126, 126, 126, 126, 126, 126,
1472 126, 126, 126, 126, 126, 126, 121, 121, 121, 121, 121, 121, 121,
1473 121, 121, 121, 121, 121, 121, 120, 120, 120, 120, 120, 120, 120,
1474 120, 120, 120, 120, 120, 120, 123, 123, 123, 123, 123, 123, 123,
1475 123, 123, 123, 123, 123, 123, 122, 122, 122, 122, 122, 122, 122,
1476 122, 122, 122, 122, 122, 122, 101, 101, 101, 101, 101, 101, 101,
1477 101, 101, 101, 101, 101, 101, 101, 101, 101, 101, 101, 101, 101,
1478 101, 101, 101, 101, 101, 101, 101, 100, 100, 100, 100, 100, 100,
1479 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100,
1480 100, 100, 100, 100, 100, 100, 100, 103, 103, 103, 103, 103, 103,
1481 103, 103, 103, 103, 103, 103, 103, 103, 103, 103, 103, 103, 103,
1482 103, 103, 103, 103, 103, 103, 103, 103, 102, 102, 102, 102, 102,
1483 102, 102, 102, 102, 102, 102, 102, 102, 102, 102, 102, 102, 102,
1484 102, 102, 102, 102, 102, 102, 102, 102, 102, 97, 97, 97, 97, 97,
1485 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97,
1486 97, 97, 97, 97, 97, 97, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96,
1487 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96,
1488 96, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99,
1489 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 98, 98, 98,
1490 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98,
1491 98, 98, 98, 98, 98, 98, 98, 98, 98, 109, 109, 109, 109, 109, 109,
1492 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109,
1493 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 108, 108, 108,
1494 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108,
1495 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 111,
1496 111, 111, 111, 111, 111, 111, 111, 111, 111, 111, 111, 111, 111,
1497 111, 111, 111, 111, 111, 111, 111, 111, 111, 111, 111, 111, 111,
1498 111, 111, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110,
1499 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110,
1500 110, 110, 110, 110, 110, 110, 105, 105, 105, 105, 105, 105, 105,
1501 105, 105, 105, 105, 105, 105, 105, 105, 105, 105, 105, 105, 105,
1502 105, 105, 105, 105, 105, 105, 105, 105, 105, 105, 104, 104, 104,
1503 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104,
1504 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104,
1505 104, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107,
1506 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107,
1507 107, 107, 107, 107, 107, 107, 106, 106, 106, 106, 106, 106, 106,
1508 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106,
1509 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 21,
1510 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21,
1511 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21,
1512 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21,
1513 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21,
1514 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20,
1515 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20,
1516 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20,
1517 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20,
1518 20, 20, 20, 20, 20, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23,
1519 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23,
1520 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23,
1521 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23,
1522 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 22, 22, 22,
1523 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22,
1524 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22,
1525 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22,
1526 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22,
1527 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 17, 17, 17, 17, 17, 17,
1528 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17,
1529 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17,
1530 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17,
1531 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17,
1532 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 16, 16,
1533 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16,
1534 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16,
1535 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16,
1536 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16,
1537 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16,
1538 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 19, 19, 19, 19, 19, 19,
1539 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19,
1540 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19,
1541 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19,
1542 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19,
1543 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19,
1544 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19,
1545 19, 19, 19, 19, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18,
1546 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18,
1547 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18,
1548 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18,
1549 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18,
1550 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18,
1551 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18,
1552 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18,
1553 18, 18, 18, 18, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29,
1554 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29,
1555 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29,
1556 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29,
1557 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29,
1558 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29,
1559 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29,
1560 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29,
1561 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29,
1562 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29,
1563 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29,
1564 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 28, 28, 28, 28, 28, 28,
1565 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28,
1566 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28,
1567 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28,
1568 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28,
1569 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28,
1570 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28,
1571 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28,
1572 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28,
1573 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28,
1574 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28,
1575 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28,
1576 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28,
1577 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28,
1578 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28,
1579 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28,
1580 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28,
1581 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28,
1582 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28,
1583 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28,
1584 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28,
1585 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28,
1586 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28,
1587 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28,
1588 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28,
1589 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28,
1590 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28,
1591 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28,
1592 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28,
1593 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28,
1594 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28,
1595 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28,
1596 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28,
1597 28, 28, 28, 28, 28, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29,
1598 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29,
1599 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29,
1600 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29,
1601 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29,
1602 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29,
1603 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29,
1604 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29,
1605 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29,
1606 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29,
1607 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29,
1608 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 18, 18, 18, 18, 18,
1609 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18,
1610 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18,
1611 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18,
1612 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18,
1613 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18,
1614 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18,
1615 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18,
1616 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 19, 19, 19, 19, 19,
1617 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19,
1618 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19,
1619 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19,
1620 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19,
1621 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19,
1622 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19,
1623 19, 19, 19, 19, 19, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16,
1624 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16,
1625 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16,
1626 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16,
1627 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16,
1628 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16,
1629 16, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17,
1630 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17,
1631 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17,
1632 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17,
1633 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17,
1634 17, 17, 17, 17, 17, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22,
1635 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22,
1636 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22,
1637 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22,
1638 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22,
1639 22, 22, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23,
1640 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23,
1641 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23,
1642 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23,
1643 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 20, 20, 20, 20, 20, 20,
1644 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20,
1645 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20,
1646 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20,
1647 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 21,
1648 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21,
1649 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21,
1650 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21,
1651 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21,
1652 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106,
1653 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106,
1654 106, 106, 106, 106, 106, 106, 107, 107, 107, 107, 107, 107, 107,
1655 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107,
1656 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 104, 104,
1657 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104,
1658 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104,
1659 104, 104, 105, 105, 105, 105, 105, 105, 105, 105, 105, 105, 105,
1660 105, 105, 105, 105, 105, 105, 105, 105, 105, 105, 105, 105, 105,
1661 105, 105, 105, 105, 105, 105, 110, 110, 110, 110, 110, 110, 110,
1662 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110,
1663 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 111, 111, 111,
1664 111, 111, 111, 111, 111, 111, 111, 111, 111, 111, 111, 111, 111,
1665 111, 111, 111, 111, 111, 111, 111, 111, 111, 111, 111, 111, 111,
1666 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108,
1667 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108,
1668 108, 108, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109,
1669 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109,
1670 109, 109, 109, 109, 109, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98,
1671 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98,
1672 98, 98, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99,
1673 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 96, 96,
1674 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96,
1675 96, 96, 96, 96, 96, 96, 96, 96, 96, 97, 97, 97, 97, 97, 97, 97,
1676 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97,
1677 97, 97, 97, 97, 102, 102, 102, 102, 102, 102, 102, 102, 102, 102,
1678 102, 102, 102, 102, 102, 102, 102, 102, 102, 102, 102, 102, 102,
1679 102, 102, 102, 102, 103, 103, 103, 103, 103, 103, 103, 103, 103,
1680 103, 103, 103, 103, 103, 103, 103, 103, 103, 103, 103, 103, 103,
1681 103, 103, 103, 103, 103, 100, 100, 100, 100, 100, 100, 100, 100,
1682 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100,
1683 100, 100, 100, 100, 100, 101, 101, 101, 101, 101, 101, 101, 101,
1684 101, 101, 101, 101, 101, 101, 101, 101, 101, 101, 101, 101, 101,
1685 101, 101, 101, 101, 101, 101, 122, 122, 122, 122, 122, 122, 122,
1686 122, 122, 122, 122, 122, 122, 123, 123, 123, 123, 123, 123, 123,
1687 123, 123, 123, 123, 123, 123, 120, 120, 120, 120, 120, 120, 120,
1688 120, 120, 120, 120, 120, 120, 121, 121, 121, 121, 121, 121, 121,
1689 121, 121, 121, 121, 121, 121, 126, 126, 126, 126, 126, 126, 126,
1690 126, 126, 126, 126, 126, 126, 127, 127, 127, 127, 127, 127, 127,
1691 127, 127, 127, 127, 127, 124, 124, 124, 124, 124, 124, 124, 124,
1692 124, 124, 124, 124, 124, 125, 125, 125, 125, 125, 125, 125, 125,
1693 125, 125, 125, 125, 125, 114, 114, 114, 114, 114, 114, 114, 114,
1694 114, 114, 114, 114, 114, 115, 115, 115, 115, 115, 115, 115, 115,
1695 115, 115, 115, 115, 115, 112, 112, 112, 112, 112, 112, 112, 112,
1696 112, 112, 112, 112, 113, 113, 113, 113, 113, 113, 113, 113, 113,
1697 113, 113, 113, 113, 118, 118, 118, 118, 118, 118, 118, 118, 118,
1698 118, 118, 118, 118, 119, 119, 119, 119, 119, 119, 119, 119, 119,
1699 119, 119, 119, 116, 116, 116, 116, 116, 116, 116, 116, 116, 116,
1700 116, 116, 116, 117, 117, 117, 117, 117, 117, 117, 117, 117, 117,
1701 117, 117, 117, 74, 74, 74, 74, 74, 74, 75, 75, 75, 75, 75, 75, 72,
1702 72, 72, 72, 72, 72, 73, 73, 73, 73, 73, 73, 73, 78, 78, 78, 78,
1703 78, 78, 79, 79, 79, 79, 79, 79, 76, 76, 76, 76, 76, 76, 76, 77,
1704 77, 77, 77, 77, 77, 66, 66, 66, 66, 66, 66, 67, 67, 67, 67, 67,
1705 67, 64, 64, 64, 64, 64, 64, 64, 65, 65, 65, 65, 65, 65, 70, 70,
1706 70, 70, 70, 70, 71, 71, 71, 71, 71, 71, 68, 68, 68, 68, 68, 68,
1707 68, 69, 69, 69, 69, 69, 69, 90, 90, 90, 90, 90, 90, 91, 91, 91,
1708 91, 91, 91, 88, 88, 88, 88, 88, 88, 88, 89, 89, 89, 89, 89, 89,
1709 94, 94, 94, 94, 94, 94, 95, 95, 95, 95, 95, 95, 92, 92, 92, 92,
1710 92, 92, 93, 93, 93, 93, 93, 93, 93, 82, 82, 82, 82, 82, 82, 83,
1711 83, 83, 83, 83, 83, 80, 80, 80, 80, 80, 80, 81, 81, 81, 81, 81,
1712 81, 81, 86, 86, 86, 86, 86, 86, 87, 87, 87, 87, 87, 87, 84, 84,
1713 84, 84, 84, 84, 85, 85, 85, 85, 85, 85, 90, 90, 90 };
1715 /*===========================================================================*/
1717 #endif /* NI4BTEL > 0 */