diff options
38 files changed, 45 insertions, 6987 deletions
diff --git a/debian/changelog b/debian/changelog index 1e283a27..915d3983 100644 --- a/debian/changelog +++ b/debian/changelog @@ -1,3 +1,9 @@ +bitlbee (3.0.6-1) unstable; urgency=low + + * New upstream release. + + -- Wilmer van der Gaast <wilmer@gaast.net> Sun, 28 Oct 2012 19:58:33 +0000 + bitlbee (3.0.5-1.2) unstable; urgency=low * Non-maintainer upload. diff --git a/debian/source/options b/debian/source/options new file mode 100644 index 00000000..91a9b784 --- /dev/null +++ b/debian/source/options @@ -0,0 +1 @@ +--diff-ignore='(^|/)\.bzr' diff --git a/protocols/jabber/message.c b/protocols/jabber/message.c index 7792c5a3..58c1c815 100644 --- a/protocols/jabber/message.c +++ b/protocols/jabber/message.c @@ -23,18 +23,14 @@ #include "jabber.h" -static unsigned int next_receipt_id = 1; - xt_status jabber_pkt_message( struct xt_node *node, gpointer data ) { struct im_connection *ic = data; - struct jabber_data *jd = ic->proto_data; char *from = xt_find_attr( node, "from" ); char *type = xt_find_attr( node, "type" ); char *id = xt_find_attr( node, "id" ); struct xt_node *body = xt_find_node( node->children, "body" ), *c; struct xt_node *request = xt_find_node( node->children, "request" ); - struct xt_node *received, *receipt; struct jabber_buddy *bud = NULL; char *s, *room = NULL, *reason = NULL; @@ -50,15 +46,12 @@ xt_status jabber_pkt_message( struct xt_node *node, gpointer data ) * to='northumberland@shakespeare.lit/westminster'> * <received xmlns='urn:xmpp:receipts' id='richard2-4.1.247'/> * </message> */ + struct xt_node *received, *receipt; + received = xt_new_node( "received", NULL, NULL ); xt_add_attr( received, "xmlns", XMLNS_RECEIPTS ); xt_add_attr( received, "id", id ); receipt = jabber_make_packet( "message", NULL, from, received ); - xt_add_attr( receipt, "from", jd->me ); - - char *id = g_strdup_printf( "%sRCPT%05x", JABBER_PACKET_ID, ( next_receipt_id++ ) & 0xfffff ); - xt_add_attr( receipt, "id", id ); - g_free( id ); jabber_write_packet( ic, receipt ); xt_free_node( receipt ); diff --git a/protocols/msn/msn.h b/protocols/msn/msn.h index 1dcb0071..eb5f7dd8 100644 --- a/protocols/msn/msn.h +++ b/protocols/msn/msn.h @@ -241,7 +241,6 @@ int msn_ns_sendmessage( struct im_connection *ic, struct bee_user *bu, const cha void msn_ns_oim_send_queue( struct im_connection *ic, GSList **msgq ); /* msn_util.c */ -int msn_logged_in( struct im_connection *ic ); int msn_buddy_list_add( struct im_connection *ic, msn_buddy_flags_t list, const char *who, const char *realname_, const char *group ); int msn_buddy_list_remove( struct im_connection *ic, msn_buddy_flags_t list, const char *who, const char *group ); void msn_buddy_ask( bee_user_t *bu ); diff --git a/protocols/msn/msn_util.c b/protocols/msn/msn_util.c index f2f67eb3..c6afd29a 100644 --- a/protocols/msn/msn_util.c +++ b/protocols/msn/msn_util.c @@ -29,13 +29,6 @@ #include "soap.h" #include <ctype.h> -int msn_logged_in( struct im_connection *ic ) -{ - imcb_connected( ic ); - - return( 0 ); -} - static char *adlrml_entry( const char *handle_, msn_buddy_flags_t list ) { char *domain, handle[strlen(handle_)+1]; diff --git a/protocols/nogaim.h b/protocols/nogaim.h index a98b7054..eccf77da 100644 --- a/protocols/nogaim.h +++ b/protocols/nogaim.h @@ -197,7 +197,7 @@ struct prpl { void (* add_deny) (struct im_connection *, char *who); void (* rem_permit) (struct im_connection *, char *who); void (* rem_deny) (struct im_connection *, char *who); - /* Doesn't actually have UI hooks. */ + /* Doesn't actually have UI hooks. Not used at all, can be removed. */ void (* set_permit_deny)(struct im_connection *); /* Request profile info. Free-formatted stuff, the IM module gives back diff --git a/protocols/oscar/aim.h b/protocols/oscar/aim.h index 479f8fd0..3f26b392 100644 --- a/protocols/oscar/aim.h +++ b/protocols/oscar/aim.h @@ -409,15 +409,6 @@ typedef struct { #define AIM_USERINFO_PRESENT_CAPABILITIES 0x00000080 #define AIM_USERINFO_PRESENT_SESSIONLEN 0x00000100 -const char *aim_userinfo_sn(aim_userinfo_t *ui); -guint16 aim_userinfo_flags(aim_userinfo_t *ui); -guint16 aim_userinfo_idle(aim_userinfo_t *ui); -float aim_userinfo_warnlevel(aim_userinfo_t *ui); -time_t aim_userinfo_membersince(aim_userinfo_t *ui); -time_t aim_userinfo_onlinesince(aim_userinfo_t *ui); -guint32 aim_userinfo_sessionlen(aim_userinfo_t *ui); -int aim_userinfo_hascap(aim_userinfo_t *ui, guint32 cap); - #define AIM_FLAG_UNCONFIRMED 0x0001 /* "damned transients" */ #define AIM_FLAG_ADMINISTRATOR 0x0002 #define AIM_FLAG_AOL 0x0004 @@ -473,7 +464,6 @@ int aim_writetlvchain(aim_bstream_t *bs, aim_tlvlist_t **list); int aim_addtlvtochain8(aim_tlvlist_t **list, const guint16 t, const guint8 v); int aim_addtlvtochain16(aim_tlvlist_t **list, const guint16 t, const guint16 v); int aim_addtlvtochain32(aim_tlvlist_t **list, const guint16 type, const guint32 v); -int aim_addtlvtochain_availmsg(aim_tlvlist_t **list, const guint16 type, const char *msg); int aim_addtlvtochain_raw(aim_tlvlist_t **list, const guint16 t, const guint16 l, const guint8 *v); int aim_addtlvtochain_caps(aim_tlvlist_t **list, const guint16 t, const guint32 caps); int aim_addtlvtochain_noval(aim_tlvlist_t **list, const guint16 type); @@ -600,13 +590,7 @@ struct aim_chat_invitation { #define AIM_WARN_ANON 0x01 -int aim_sendpauseack(aim_session_t *sess, aim_conn_t *conn); -int aim_send_warning(aim_session_t *sess, aim_conn_t *conn, const char *destsn, guint32 flags); -int aim_nop(aim_session_t *, aim_conn_t *); int aim_flap_nop(aim_session_t *sess, aim_conn_t *conn); -int aim_bos_setidle(aim_session_t *, aim_conn_t *, guint32); -int aim_bos_changevisibility(aim_session_t *, aim_conn_t *, int, const char *); -int aim_bos_setbuddylist(aim_session_t *, aim_conn_t *, const char *); int aim_bos_setprofile(aim_session_t *sess, aim_conn_t *conn, const char *profile, const char *awaymsg, guint32 caps); int aim_bos_setgroupperm(aim_session_t *, aim_conn_t *, guint32 mask); int aim_bos_setprivacyflags(aim_session_t *, aim_conn_t *, guint32); @@ -615,8 +599,6 @@ int aim_reqservice(aim_session_t *, aim_conn_t *, guint16); int aim_bos_reqrights(aim_session_t *, aim_conn_t *); int aim_bos_reqbuddyrights(aim_session_t *, aim_conn_t *); int aim_bos_reqlocaterights(aim_session_t *, aim_conn_t *); -int aim_setdirectoryinfo(aim_session_t *sess, aim_conn_t *conn, const char *first, const char *middle, const char *last, const char *maiden, const char *nickname, const char *street, const char *city, const char *state, const char *zip, int country, guint16 privacy); -int aim_setuserinterests(aim_session_t *sess, aim_conn_t *conn, const char *interest1, const char *interest2, const char *interest3, const char *interest4, const char *interest5, guint16 privacy); int aim_setextstatus(aim_session_t *sess, aim_conn_t *conn, guint32 status); struct aim_fileheader_t *aim_getlisting(aim_session_t *sess, FILE *); @@ -626,7 +608,6 @@ struct aim_fileheader_t *aim_getlisting(aim_session_t *sess, FILE *); #define AIM_CLIENTTYPE_WINAIM 0x0002 #define AIM_CLIENTTYPE_WINAIM41 0x0003 #define AIM_CLIENTTYPE_AOL_TOC 0x0004 -unsigned short aim_fingerprintclient(unsigned char *msghdr, int len); #define AIM_RATE_CODE_CHANGE 0x0001 #define AIM_RATE_CODE_WARNING 0x0002 @@ -646,8 +627,6 @@ int aim_oft_getfile_end(aim_session_t *sess, aim_conn_t *conn); #define AIM_SENDMEMBLOCK_FLAG_ISREQUEST 0 #define AIM_SENDMEMBLOCK_FLAG_ISHASH 1 -int aim_sendmemblock(aim_session_t *sess, aim_conn_t *conn, guint32 offset, guint32 len, const guint8 *buf, guint8 flag); - #define AIM_GETINFO_GENERALINFO 0x00001 #define AIM_GETINFO_AWAYMESSAGE 0x00003 #define AIM_GETINFO_CAPABILITIES 0x0004 @@ -673,12 +652,9 @@ int aim_handlerendconnect(aim_session_t *sess, aim_conn_t *cur); #define AIM_TRANSFER_DENY_NOTSUPPORTED 0x0000 #define AIM_TRANSFER_DENY_DECLINE 0x0001 #define AIM_TRANSFER_DENY_NOTACCEPTING 0x0002 -int aim_denytransfer(aim_session_t *sess, const char *sender, const guint8 *cookie, unsigned short code); aim_conn_t *aim_accepttransfer(aim_session_t *sess, aim_conn_t *conn, const char *sn, const guint8 *cookie, const guint8 *ip, guint16 listingfiles, guint16 listingtotsize, guint16 listingsize, guint32 listingchecksum, guint16 rendid); int aim_getinfo(aim_session_t *, aim_conn_t *, const char *, unsigned short); -int aim_sendbuddyoncoming(aim_session_t *sess, aim_conn_t *conn, aim_userinfo_t *info); -int aim_sendbuddyoffgoing(aim_session_t *sess, aim_conn_t *conn, const char *sn); #define AIM_IMPARAM_FLAG_CHANMSGS_ALLOWED 0x00000001 #define AIM_IMPARAM_FLAG_MISSEDCALLS_ENABLED 0x00000002 @@ -746,16 +722,12 @@ struct aim_chat_exchangeinfo { int aim_chat_send_im(aim_session_t *sess, aim_conn_t *conn, guint16 flags, const char *msg, int msglen); int aim_chat_join(aim_session_t *sess, aim_conn_t *conn, guint16 exchange, const char *roomname, guint16 instance); -int aim_chat_attachname(aim_conn_t *conn, guint16 exchange, const char *roomname, guint16 instance); -char *aim_chat_getname(aim_conn_t *conn); -aim_conn_t *aim_chat_getconn(aim_session_t *, const char *name); int aim_chatnav_reqrights(aim_session_t *sess, aim_conn_t *conn); int aim_chat_invite(aim_session_t *sess, aim_conn_t *conn, const char *sn, const char *msg, guint16 exchange, const char *roomname, guint16 instance); int aim_chatnav_createroom(aim_session_t *sess, aim_conn_t *conn, const char *name, guint16 exchange); -int aim_chat_leaveroom(aim_session_t *sess, const char *name); /* aim_util.c */ /* @@ -811,10 +783,6 @@ int aim_chat_leaveroom(aim_session_t *sess, const char *name); (((*((buf)+3)) << 24) & 0xff000000)) -int aimutil_putstr(u_char *, const char *, int); -int aimutil_tokslen(char *toSearch, int index, char dl); -int aimutil_itemcnt(char *toSearch, char dl); -char *aimutil_itemidx(char *toSearch, int index, char dl); int aim_sncmp(const char *a, const char *b); #include <aim_internal.h> diff --git a/protocols/oscar/aim_internal.h b/protocols/oscar/aim_internal.h index 80a9c758..e4cdd0a2 100644 --- a/protocols/oscar/aim_internal.h +++ b/protocols/oscar/aim_internal.h @@ -111,9 +111,6 @@ aim_snac_t *aim_remsnac(aim_session_t *, aim_snacid_t id); void aim_cleansnacs(aim_session_t *, int maxage); int aim_putsnac(aim_bstream_t *, guint16 family, guint16 type, guint16 flags, aim_snacid_t id); -aim_conn_t *aim_cloneconn(aim_session_t *sess, aim_conn_t *src); -void aim_clonehandlers(aim_session_t *sess, aim_conn_t *dest, aim_conn_t *src); - int aim_oft_buildheader(unsigned char *,struct aim_fileheader_t *); int aim_parse_unknown(aim_session_t *, aim_frame_t *, ...); @@ -194,12 +191,9 @@ int aim_freecookie(aim_session_t *sess, aim_msgcookie_t *cookie); int aim_cookie_free(aim_session_t *sess, aim_msgcookie_t *cookie); int aim_extractuserinfo(aim_session_t *sess, aim_bstream_t *bs, aim_userinfo_t *); -int aim_putuserinfo(aim_bstream_t *bs, aim_userinfo_t *info); int aim_chat_readroominfo(aim_bstream_t *bs, struct aim_chat_roominfo *outinfo); -int aim_request_directim(aim_session_t *sess, const char *destsn, guint8 *ip, guint16 port, guint8 *ckret); -int aim_request_sendfile(aim_session_t *sess, const char *sn, const char *filename, guint16 numfiles, guint32 totsize, guint8 *ip, guint16 port, guint8 *ckret); void aim_conn_close_rend(aim_session_t *sess, aim_conn_t *conn); void aim_conn_kill_rend(aim_session_t *sess, aim_conn_t *conn); @@ -209,6 +203,5 @@ void aim_conn_kill_chat(aim_session_t *sess, aim_conn_t *conn); int aim_setversions(aim_session_t *sess, aim_conn_t *conn); int aim_reqrates(aim_session_t *, aim_conn_t *); int aim_rates_addparam(aim_session_t *, aim_conn_t *); -int aim_rates_delparam(aim_session_t *, aim_conn_t *); #endif /* __AIM_INTERNAL_H__ */ diff --git a/protocols/oscar/bos.c b/protocols/oscar/bos.c index e7f12f79..4a1c5036 100644 --- a/protocols/oscar/bos.c +++ b/protocols/oscar/bos.c @@ -55,86 +55,6 @@ int aim_bos_setgroupperm(aim_session_t *sess, aim_conn_t *conn, guint32 mask) return aim_genericreq_l(sess, conn, 0x0009, 0x0004, &mask); } -/* - * Modify permit/deny lists (group 9, types 5, 6, 7, and 8) - * - * Changes your visibility depending on changetype: - * - * AIM_VISIBILITYCHANGE_PERMITADD: Lets provided list of names see you - * AIM_VISIBILITYCHANGE_PERMIDREMOVE: Removes listed names from permit list - * AIM_VISIBILITYCHANGE_DENYADD: Hides you from provided list of names - * AIM_VISIBILITYCHANGE_DENYREMOVE: Lets list see you again - * - * list should be a list of - * screen names in the form "Screen Name One&ScreenNameTwo&" etc. - * - * Equivelents to options in WinAIM: - * - Allow all users to contact me: Send an AIM_VISIBILITYCHANGE_DENYADD - * with only your name on it. - * - Allow only users on my Buddy List: Send an - * AIM_VISIBILITYCHANGE_PERMITADD with the list the same as your - * buddy list - * - Allow only the uesrs below: Send an AIM_VISIBILITYCHANGE_PERMITADD - * with everyone listed that you want to see you. - * - Block all users: Send an AIM_VISIBILITYCHANGE_PERMITADD with only - * yourself in the list - * - Block the users below: Send an AIM_VISIBILITYCHANGE_DENYADD with - * the list of users to be blocked - * - * XXX ye gods. - */ -int aim_bos_changevisibility(aim_session_t *sess, aim_conn_t *conn, int changetype, const char *denylist) -{ - aim_frame_t *fr; - int packlen = 0; - guint16 subtype; - char *localcpy = NULL, *tmpptr = NULL; - int i; - int listcount; - aim_snacid_t snacid; - - if (!denylist) - return -EINVAL; - - if (changetype == AIM_VISIBILITYCHANGE_PERMITADD) - subtype = 0x05; - else if (changetype == AIM_VISIBILITYCHANGE_PERMITREMOVE) - subtype = 0x06; - else if (changetype == AIM_VISIBILITYCHANGE_DENYADD) - subtype = 0x07; - else if (changetype == AIM_VISIBILITYCHANGE_DENYREMOVE) - subtype = 0x08; - else - return -EINVAL; - - localcpy = g_strdup(denylist); - - listcount = aimutil_itemcnt(localcpy, '&'); - packlen = aimutil_tokslen(localcpy, 99, '&') + listcount + 9; - - if (!(fr = aim_tx_new(sess, conn, AIM_FRAMETYPE_FLAP, 0x02, packlen))) { - g_free(localcpy); - return -ENOMEM; - } - - snacid = aim_cachesnac(sess, 0x0009, subtype, 0x0000, NULL, 0); - aim_putsnac(&fr->data, 0x0009, subtype, 0x00, snacid); - - for (i = 0; (i < (listcount - 1)) && (i < 99); i++) { - tmpptr = aimutil_itemidx(localcpy, i, '&'); - - aimbs_put8(&fr->data, strlen(tmpptr)); - aimbs_putraw(&fr->data, (guint8 *)tmpptr, strlen(tmpptr)); - - g_free(tmpptr); - } - g_free(localcpy); - - aim_tx_enqueue(sess, fr); - - return 0; -} - static int snachandler(aim_session_t *sess, aim_module_t *mod, aim_frame_t *rx, aim_modsnac_t *snac, aim_bstream_t *bs) { diff --git a/protocols/oscar/buddylist.c b/protocols/oscar/buddylist.c index a7b461f2..3335c5ab 100644 --- a/protocols/oscar/buddylist.c +++ b/protocols/oscar/buddylist.c @@ -90,61 +90,3 @@ int buddylist_modfirst(aim_session_t *sess, aim_module_t *mod) return 0; } - -/* - * aim_add_buddy() - * - * Adds a single buddy to your buddy list after login. - * - * XXX this should just be an extension of setbuddylist() - * - */ -int aim_add_buddy(aim_session_t *sess, aim_conn_t *conn, const char *sn) -{ - aim_frame_t *fr; - aim_snacid_t snacid; - - if (!sn || !strlen(sn)) - return -EINVAL; - - if (!(fr = aim_tx_new(sess, conn, AIM_FRAMETYPE_FLAP, 0x02, 10+1+strlen(sn)))) - return -ENOMEM; - - snacid = aim_cachesnac(sess, 0x0003, 0x0004, 0x0000, sn, strlen(sn)+1); - aim_putsnac(&fr->data, 0x0003, 0x0004, 0x0000, snacid); - - aimbs_put8(&fr->data, strlen(sn)); - aimbs_putraw(&fr->data, (guint8 *)sn, strlen(sn)); - - aim_tx_enqueue(sess, fr); - - return 0; -} - -/* - * XXX generalise to support removing multiple buddies (basically, its - * the same as setbuddylist() but with a different snac subtype). - * - */ -int aim_remove_buddy(aim_session_t *sess, aim_conn_t *conn, const char *sn) -{ - aim_frame_t *fr; - aim_snacid_t snacid; - - if (!sn || !strlen(sn)) - return -EINVAL; - - if (!(fr = aim_tx_new(sess, conn, AIM_FRAMETYPE_FLAP, 0x02, 10+1+strlen(sn)))) - return -ENOMEM; - - snacid = aim_cachesnac(sess, 0x0003, 0x0005, 0x0000, sn, strlen(sn)+1); - aim_putsnac(&fr->data, 0x0003, 0x0005, 0x0000, snacid); - - aimbs_put8(&fr->data, strlen(sn)); - aimbs_putraw(&fr->data, (guint8 *)sn, strlen(sn)); - - aim_tx_enqueue(sess, fr); - - return 0; -} - diff --git a/protocols/oscar/buddylist.h b/protocols/oscar/buddylist.h index 9a325279..55189581 100644 --- a/protocols/oscar/buddylist.h +++ b/protocols/oscar/buddylist.h @@ -16,8 +16,4 @@ #define AIM_CB_BUD_OFFGOING 0x000c #define AIM_CB_BUD_DEFAULT 0xffff -/* aim_buddylist.c */ -int aim_add_buddy(aim_session_t *, aim_conn_t *, const char *); -int aim_remove_buddy(aim_session_t *, aim_conn_t *, const char *); - #endif /* __OSCAR_BUDDYLIST_H__ */ diff --git a/protocols/oscar/chat.c b/protocols/oscar/chat.c index a5db8fba..d8399563 100644 --- a/protocols/oscar/chat.c +++ b/protocols/oscar/chat.c @@ -27,65 +27,6 @@ void aim_conn_kill_chat(aim_session_t *sess, aim_conn_t *conn) return; } -char *aim_chat_getname(aim_conn_t *conn) -{ - struct chatconnpriv *ccp; - - if (!conn) - return NULL; - - if (conn->type != AIM_CONN_TYPE_CHAT) - return NULL; - - ccp = (struct chatconnpriv *)conn->priv; - - return ccp->name; -} - -/* XXX get this into conn.c -- evil!! */ -aim_conn_t *aim_chat_getconn(aim_session_t *sess, const char *name) -{ - aim_conn_t *cur; - - for (cur = sess->connlist; cur; cur = cur->next) { - struct chatconnpriv *ccp = (struct chatconnpriv *)cur->priv; - - if (cur->type != AIM_CONN_TYPE_CHAT) - continue; - if (!cur->priv) { - imcb_error(sess->aux_data, "chat connection with no name!"); - continue; - } - - if (strcmp(ccp->name, name) == 0) - break; - } - - return cur; -} - -int aim_chat_attachname(aim_conn_t *conn, guint16 exchange, const char *roomname, guint16 instance) -{ - struct chatconnpriv *ccp; - - if (!conn || !roomname) - return -EINVAL; - - if (conn->priv) - g_free(conn->priv); - - if (!(ccp = g_malloc(sizeof(struct chatconnpriv)))) - return -ENOMEM; - - ccp->exchange = exchange; - ccp->name = g_strdup(roomname); - ccp->instance = instance; - - conn->priv = (void *)ccp; - - return 0; -} - /* * Send a Chat Message. * @@ -253,18 +194,6 @@ int aim_chat_readroominfo(aim_bstream_t *bs, struct aim_chat_roominfo *outinfo) return 0; } -int aim_chat_leaveroom(aim_session_t *sess, const char *name) -{ - aim_conn_t *conn; - - if (!(conn = aim_chat_getconn(sess, name))) - return -ENOENT; - - aim_conn_close(conn); - - return 0; -} - /* * conn must be a BOS connection! */ diff --git a/protocols/oscar/conn.c b/protocols/oscar/conn.c index 77ffd50f..a178761e 100644 --- a/protocols/oscar/conn.c +++ b/protocols/oscar/conn.c @@ -353,50 +353,6 @@ aim_conn_t *aim_getconn_type_all(aim_session_t *sess, int type) } /** - * aim_cloneconn - clone an aim_conn_t - * @sess: session containing parent - * @src: connection to clone - * - * A new connection is allocated, and the values are filled in - * appropriately. Note that this function sets the new connnection's - * ->priv pointer to be equal to that of its parent: only the pointer - * is copied, not the data it points to. - * - * This function returns a pointer to the new aim_conn_t, or %NULL on - * error - */ -aim_conn_t *aim_cloneconn(aim_session_t *sess, aim_conn_t *src) -{ - aim_conn_t *conn; - - if (!(conn = aim_conn_getnext(sess))) - return NULL; - - conn->fd = src->fd; - conn->type = src->type; - conn->subtype = src->subtype; - conn->seqnum = src->seqnum; - conn->priv = src->priv; - conn->internal = src->internal; - conn->lastactivity = src->lastactivity; - conn->forcedlatency = src->forcedlatency; - conn->sessv = src->sessv; - aim_clonehandlers(sess, conn, src); - - if (src->inside) { - /* - * XXX should clone this section as well, but since currently - * this function only gets called for some of that rendezvous - * crap, and not on SNAC connections, its probably okay for - * now. - * - */ - } - - return conn; -} - -/** * aim_newconn - Open a new connection * @sess: Session to create connection in * @type: Type of connection to create diff --git a/protocols/oscar/icq.c b/protocols/oscar/icq.c index c2f8dda6..bd1ba1d1 100644 --- a/protocols/oscar/icq.c +++ b/protocols/oscar/icq.c @@ -70,44 +70,6 @@ int aim_icq_ackofflinemsgs(aim_session_t *sess) return 0; } -int aim_icq_sendxmlreq(aim_session_t *sess, const char *xml) -{ - aim_conn_t *conn; - aim_frame_t *fr; - aim_snacid_t snacid; - int bslen; - - if (!xml || !strlen(xml)) - return -EINVAL; - - if (!sess || !(conn = aim_conn_findbygroup(sess, 0x0015))) - return -EINVAL; - - bslen = 2 + 10 + 2 + strlen(xml) + 1; - - if (!(fr = aim_tx_new(sess, conn, AIM_FRAMETYPE_FLAP, 0x02, 10 + 4 + bslen))) - return -ENOMEM; - - snacid = aim_cachesnac(sess, 0x0015, 0x0002, 0x0000, NULL, 0); - aim_putsnac(&fr->data, 0x0015, 0x0002, 0x0000, snacid); - - /* For simplicity, don't bother using a tlvlist */ - aimbs_put16(&fr->data, 0x0001); - aimbs_put16(&fr->data, bslen); - - aimbs_putle16(&fr->data, bslen - 2); - aimbs_putle32(&fr->data, atoi(sess->sn)); - aimbs_putle16(&fr->data, 0x07d0); /* I command thee. */ - aimbs_putle16(&fr->data, snacid); /* eh. */ - aimbs_putle16(&fr->data, 0x0998); /* shrug. */ - aimbs_putle16(&fr->data, strlen(xml) + 1); - aimbs_putraw(&fr->data, (guint8 *)xml, strlen(xml) + 1); - - aim_tx_enqueue(sess, fr); - - return 0; -} - int aim_icq_getallinfo(aim_session_t *sess, const char *uin) { aim_conn_t *conn; @@ -153,43 +115,6 @@ int aim_icq_getallinfo(aim_session_t *sess, const char *uin) return 0; } -int aim_icq_getsimpleinfo(aim_session_t *sess, const char *uin) -{ - aim_conn_t *conn; - aim_frame_t *fr; - aim_snacid_t snacid; - int bslen; - - if (!uin || uin[0] < '0' || uin[0] > '9') - return -EINVAL; - - if (!sess || !(conn = aim_conn_findbygroup(sess, 0x0015))) - return -EINVAL; - - bslen = 2 + 4 + 2 + 2 + 2 + 4; - - if (!(fr = aim_tx_new(sess, conn, AIM_FRAMETYPE_FLAP, 0x02, 10 + 4 + bslen))) - return -ENOMEM; - - snacid = aim_cachesnac(sess, 0x0015, 0x0002, 0x0000, NULL, 0); - aim_putsnac(&fr->data, 0x0015, 0x0002, 0x0000, snacid); - - /* For simplicity, don't bother using a tlvlist */ - aimbs_put16(&fr->data, 0x0001); - aimbs_put16(&fr->data, bslen); - - aimbs_putle16(&fr->data, bslen - 2); - aimbs_putle32(&fr->data, atoi(sess->sn)); - aimbs_putle16(&fr->data, 0x07d0); /* I command thee. */ - aimbs_putle16(&fr->data, snacid); /* eh. */ - aimbs_putle16(&fr->data, 0x051f); /* shrug. */ - aimbs_putle32(&fr->data, atoi(uin)); - - aim_tx_enqueue(sess, fr); - - return 0; -} - static void aim_icq_freeinfo(struct aim_icq_info *info) { int i; diff --git a/protocols/oscar/icq.h b/protocols/oscar/icq.h index c496f39c..41b3efb9 100644 --- a/protocols/oscar/icq.h +++ b/protocols/oscar/icq.h @@ -93,6 +93,5 @@ struct aim_icq_info { int aim_icq_reqofflinemsgs(aim_session_t *sess); int aim_icq_ackofflinemsgs(aim_session_t *sess); int aim_icq_getallinfo(aim_session_t *sess, const char *uin); -int aim_icq_getsimpleinfo(aim_session_t *sess, const char *uin); #endif /* __OSCAR_ICQ_H__ */ diff --git a/protocols/oscar/im.c b/protocols/oscar/im.c index 231dd959..05e06e91 100644 --- a/protocols/oscar/im.c +++ b/protocols/oscar/im.c @@ -24,83 +24,6 @@ #include "info.h" /* - * Takes a msghdr (and a length) and returns a client type - * code. Note that this is *only a guess* and has a low likelihood - * of actually being accurate. - * - * Its based on experimental data, with the help of Eric Warmenhoven - * who seems to have collected a wide variety of different AIM clients. - * - * - * Heres the current collection: - * 0501 0003 0101 0101 01 AOL Mobile Communicator, WinAIM 1.0.414 - * 0501 0003 0101 0201 01 WinAIM 2.0.847, 2.1.1187, 3.0.1464, - * 4.3.2229, 4.4.2286 - * 0501 0004 0101 0102 0101 WinAIM 4.1.2010, libfaim (right here) - * 0501 0001 0101 01 AOL v6.0, CompuServe 2000 v6.0, any - * TOC client - * - * Note that in this function, only the feature bytes are tested, since - * the rest will always be the same. - * - */ -guint16 aim_fingerprintclient(guint8 *msghdr, int len) -{ - static const struct { - guint16 clientid; - int len; - guint8 data[10]; - } fingerprints[] = { - /* AOL Mobile Communicator, WinAIM 1.0.414 */ - { AIM_CLIENTTYPE_MC, - 3, {0x01, 0x01, 0x01}}, - - /* WinAIM 2.0.847, 2.1.1187, 3.0.1464, 4.3.2229, 4.4.2286 */ - { AIM_CLIENTTYPE_WINAIM, - 3, {0x01, 0x01, 0x02}}, - - /* WinAIM 4.1.2010, libfaim */ - { AIM_CLIENTTYPE_WINAIM41, - 4, {0x01, 0x01, 0x01, 0x02}}, - - /* AOL v6.0, CompuServe 2000 v6.0, any TOC client */ - { AIM_CLIENTTYPE_AOL_TOC, - 1, {0x01}}, - - { 0, 0} - }; - int i; - - if (!msghdr || (len <= 0)) - return AIM_CLIENTTYPE_UNKNOWN; - - for (i = 0; fingerprints[i].len; i++) { - if (fingerprints[i].len != len) - continue; - if (memcmp(fingerprints[i].data, msghdr, fingerprints[i].len) == 0) - return fingerprints[i].clientid; - } - - return AIM_CLIENTTYPE_UNKNOWN; -} - -/* This should be endian-safe now... but who knows... */ -guint16 aim_iconsum(const guint8 *buf, int buflen) -{ - guint32 sum; - int i; - - for (i = 0, sum = 0; i + 1 < buflen; i += 2) - sum += (buf[i+1] << 8) + buf[i]; - if (i < buflen) - sum += buf[i]; - - sum = ((sum & 0xffff0000) >> 16) + (sum & 0x0000ffff); - - return (guint16)sum; -} - -/* * Send an ICBM (instant message). * * @@ -366,483 +289,6 @@ int aim_send_im(aim_session_t *sess, const char *destsn, guint16 flags, const ch return aim_send_im_ext(sess, &args); } -/* - * This is also performance sensitive. (If you can believe it...) - * - */ -int aim_send_icon(aim_session_t *sess, const char *sn, const guint8 *icon, int iconlen, time_t stamp, guint16 iconsum) -{ - aim_conn_t *conn; - int i; - guint8 ck[8]; - aim_frame_t *fr; - aim_snacid_t snacid; - - if (!sess || !(conn = aim_conn_findbygroup(sess, 0x0004))) - return -EINVAL; - - if (!sn || !icon || (iconlen <= 0) || (iconlen >= MAXICONLEN)) - return -EINVAL; - - for (i = 0; i < 8; i++) - aimutil_put8(ck+i, (guint8) rand()); - - if (!(fr = aim_tx_new(sess, conn, AIM_FRAMETYPE_FLAP, 0x02, 10+8+2+1+strlen(sn)+2+2+2+8+16+2+2+2+2+2+2+2+4+4+4+iconlen+strlen(AIM_ICONIDENT)+2+2))) - return -ENOMEM; - - snacid = aim_cachesnac(sess, 0x0004, 0x0006, 0x0000, NULL, 0); - aim_putsnac(&fr->data, 0x0004, 0x0006, 0x0000, snacid); - - /* - * Cookie - */ - aimbs_putraw(&fr->data, ck, 8); - - /* - * Channel (2) - */ - aimbs_put16(&fr->data, 0x0002); - - /* - * Dest sn - */ - aimbs_put8(&fr->data, strlen(sn)); - aimbs_putraw(&fr->data, (guint8 *)sn, strlen(sn)); - - /* - * TLV t(0005) - * - * Encompasses everything below. - */ - aimbs_put16(&fr->data, 0x0005); - aimbs_put16(&fr->data, 2+8+16+6+4+4+iconlen+4+4+4+strlen(AIM_ICONIDENT)); - - aimbs_put16(&fr->data, 0x0000); - aimbs_putraw(&fr->data, ck, 8); - aim_putcap(&fr->data, AIM_CAPS_BUDDYICON); - - /* TLV t(000a) */ - aimbs_put16(&fr->data, 0x000a); - aimbs_put16(&fr->data, 0x0002); - aimbs_put16(&fr->data, 0x0001); - - /* TLV t(000f) */ - aimbs_put16(&fr->data, 0x000f); - aimbs_put16(&fr->data, 0x0000); - - /* TLV t(2711) */ - aimbs_put16(&fr->data, 0x2711); - aimbs_put16(&fr->data, 4+4+4+iconlen+strlen(AIM_ICONIDENT)); - aimbs_put16(&fr->data, 0x0000); - aimbs_put16(&fr->data, iconsum); - aimbs_put32(&fr->data, iconlen); - aimbs_put32(&fr->data, stamp); - aimbs_putraw(&fr->data, icon, iconlen); - aimbs_putraw(&fr->data, (guint8 *)AIM_ICONIDENT, strlen(AIM_ICONIDENT)); - - /* TLV t(0003) */ - aimbs_put16(&fr->data, 0x0003); - aimbs_put16(&fr->data, 0x0000); - - aim_tx_enqueue(sess, fr); - - return 0; -} - -/* - * This only works for ICQ 2001b (thats 2001 not 2000). Better, only - * send it to clients advertising the RTF capability. In fact, if you send - * it to a client that doesn't support that capability, the server will gladly - * bounce it back to you. - * - * You'd think this would be in icq.c, but, well, I'm trying to stick with - * the one-group-per-file scheme as much as possible. This could easily - * be an exception, since Rendezvous IMs are external of the Oscar core, - * and therefore are undefined. Really I just need to think of a good way to - * make an interface similar to what AOL actually uses. But I'm not using COM. - * - */ -int aim_send_rtfmsg(aim_session_t *sess, struct aim_sendrtfmsg_args *args) -{ - const char rtfcap[] = {"{97B12751-243C-4334-AD22-D6ABF73F1492}"}; /* AIM_CAPS_ICQRTF capability in string form */ - aim_conn_t *conn; - int i; - guint8 ck[8]; - aim_frame_t *fr; - aim_snacid_t snacid; - int servdatalen; - - if (!sess || !(conn = aim_conn_findbygroup(sess, 0x0004))) - return -EINVAL; - - if (!args || !args->destsn || !args->rtfmsg) - return -EINVAL; - - servdatalen = 2+2+16+2+4+1+2 + 2+2+4+4+4 + 2+4+2+strlen(args->rtfmsg)+1 + 4+4+4+strlen(rtfcap)+1; - - for (i = 0; i < 8; i++) - aimutil_put8(ck+i, (guint8) rand()); - - if (!(fr = aim_tx_new(sess, conn, AIM_FRAMETYPE_FLAP, 0x02, 10+128+servdatalen))) - return -ENOMEM; - - snacid = aim_cachesnac(sess, 0x0004, 0x0006, 0x0000, NULL, 0); - aim_putsnac(&fr->data, 0x0004, 0x0006, 0x0000, snacid); - - /* - * Cookie - */ - aimbs_putraw(&fr->data, ck, 8); - - /* - * Channel (2) - */ - aimbs_put16(&fr->data, 0x0002); - - /* - * Dest sn - */ - aimbs_put8(&fr->data, strlen(args->destsn)); - aimbs_putraw(&fr->data, (guint8 *)args->destsn, strlen(args->destsn)); - - /* - * TLV t(0005) - * - * Encompasses everything below. - */ - aimbs_put16(&fr->data, 0x0005); - aimbs_put16(&fr->data, 2+8+16 + 2+2+2 + 2+2 + 2+2+servdatalen); - - aimbs_put16(&fr->data, 0x0000); - aimbs_putraw(&fr->data, ck, 8); - aim_putcap(&fr->data, AIM_CAPS_ICQSERVERRELAY); - - /* - * t(000a) l(0002) v(0001) - */ - aimbs_put16(&fr->data, 0x000a); - aimbs_put16(&fr->data, 0x0002); - aimbs_put16(&fr->data, 0x0001); - - /* - * t(000f) l(0000) v() - */ - aimbs_put16(&fr->data, 0x000f); - aimbs_put16(&fr->data, 0x0000); - - /* - * Service Data TLV - */ - aimbs_put16(&fr->data, 0x2711); - aimbs_put16(&fr->data, servdatalen); - - aimbs_putle16(&fr->data, 11 + 16 /* 11 + (sizeof CLSID) */); - aimbs_putle16(&fr->data, 9); - aim_putcap(&fr->data, AIM_CAPS_EMPTY); - aimbs_putle16(&fr->data, 0); - aimbs_putle32(&fr->data, 0); - aimbs_putle8(&fr->data, 0); - aimbs_putle16(&fr->data, 0x03ea); /* trid1 */ - - aimbs_putle16(&fr->data, 14); - aimbs_putle16(&fr->data, 0x03eb); /* trid2 */ - aimbs_putle32(&fr->data, 0); - aimbs_putle32(&fr->data, 0); - aimbs_putle32(&fr->data, 0); - - aimbs_putle16(&fr->data, 0x0001); - aimbs_putle32(&fr->data, 0); - aimbs_putle16(&fr->data, strlen(args->rtfmsg)+1); - aimbs_putraw(&fr->data, (guint8 *)args->rtfmsg, strlen(args->rtfmsg)+1); - - aimbs_putle32(&fr->data, args->fgcolor); - aimbs_putle32(&fr->data, args->bgcolor); - aimbs_putle32(&fr->data, strlen(rtfcap)+1); - aimbs_putraw(&fr->data, (guint8 *)rtfcap, strlen(rtfcap)+1); - - aim_tx_enqueue(sess, fr); - - return 0; -} - -int aim_request_directim(aim_session_t *sess, const char *destsn, guint8 *ip, guint16 port, guint8 *ckret) -{ - aim_conn_t *conn; - guint8 ck[8]; - aim_frame_t *fr; - aim_snacid_t snacid; - aim_tlvlist_t *tl = NULL, *itl = NULL; - int hdrlen, i; - guint8 *hdr; - aim_bstream_t hdrbs; - - if (!sess || !(conn = aim_conn_findbygroup(sess, 0x0004))) - return -EINVAL; - - if (!(fr = aim_tx_new(sess, conn, AIM_FRAMETYPE_FLAP, 0x02, 256+strlen(destsn)))) - return -ENOMEM; - - snacid = aim_cachesnac(sess, 0x0004, 0x0006, 0x0000, NULL, 0); - aim_putsnac(&fr->data, 0x0004, 0x0006, 0x0000, snacid); - - /* - * Generate a random message cookie - * - * This cookie needs to be alphanumeric and NULL-terminated to be - * TOC-compatible. - * - * XXX have I mentioned these should be generated in msgcookie.c? - * - */ - for (i = 0; i < 7; i++) - ck[i] = 0x30 + ((guint8) rand() % 10); - ck[7] = '\0'; - - if (ckret) - memcpy(ckret, ck, 8); - - /* Cookie */ - aimbs_putraw(&fr->data, ck, 8); - - /* Channel */ - aimbs_put16(&fr->data, 0x0002); - - /* Destination SN */ - aimbs_put8(&fr->data, strlen(destsn)); - aimbs_putraw(&fr->data, (guint8 *)destsn, strlen(destsn)); - - aim_addtlvtochain_noval(&tl, 0x0003); - - hdrlen = 2+8+16+6+8+6+4; - hdr = g_malloc(hdrlen); - aim_bstream_init(&hdrbs, hdr, hdrlen); - - aimbs_put16(&hdrbs, 0x0000); - aimbs_putraw(&hdrbs, ck, 8); - aim_putcap(&hdrbs, AIM_CAPS_IMIMAGE); - - aim_addtlvtochain16(&itl, 0x000a, 0x0001); - aim_addtlvtochain_raw(&itl, 0x0003, 4, ip); - aim_addtlvtochain16(&itl, 0x0005, port); - aim_addtlvtochain_noval(&itl, 0x000f); - - aim_writetlvchain(&hdrbs, &itl); - - aim_addtlvtochain_raw(&tl, 0x0005, aim_bstream_curpos(&hdrbs), hdr); - - aim_writetlvchain(&fr->data, &tl); - - g_free(hdr); - aim_freetlvchain(&itl); - aim_freetlvchain(&tl); - - aim_tx_enqueue(sess, fr); - - return 0; -} - -int aim_request_sendfile(aim_session_t *sess, const char *sn, const char *filename, guint16 numfiles, guint32 totsize, guint8 *ip, guint16 port, guint8 *ckret) -{ - aim_conn_t *conn; - int i; - guint8 ck[8]; - aim_frame_t *fr; - aim_snacid_t snacid; - - if (!sess || !(conn = aim_conn_findbygroup(sess, 0x0004))) - return -EINVAL; - - if (!sn || !filename) - return -EINVAL; - - if (!(fr = aim_tx_new(sess, conn, AIM_FRAMETYPE_FLAP, 0x02, 10+8+2+1+strlen(sn)+2+2+2+8+16+6+8+6+4+2+2+2+2+4+strlen(filename)+4))) - return -ENOMEM; - - snacid = aim_cachesnac(sess, 0x0004, 0x0006, 0x0000, NULL, 0); - aim_putsnac(&fr->data, 0x0004, 0x0006, 0x0000, snacid); - - for (i = 0; i < 7; i++) - aimutil_put8(ck+i, 0x30 + ((guint8) rand() % 10)); - ck[7] = '\0'; - - if (ckret) - memcpy(ckret, ck, 8); - - /* - * Cookie - */ - aimbs_putraw(&fr->data, ck, 8); - - /* - * Channel (2) - */ - aimbs_put16(&fr->data, 0x0002); - - /* - * Dest sn - */ - aimbs_put8(&fr->data, strlen(sn)); - aimbs_putraw(&fr->data, (guint8 *)sn, strlen(sn)); - - /* - * TLV t(0005) - * - * Encompasses everything below. Gee. - */ - aimbs_put16(&fr->data, 0x0005); - aimbs_put16(&fr->data, 2+8+16+6+8+6+4+2+2+2+2+4+strlen(filename)+4); - - aimbs_put16(&fr->data, 0x0000); - aimbs_putraw(&fr->data, ck, 8); - aim_putcap(&fr->data, AIM_CAPS_SENDFILE); - - /* TLV t(000a) */ - aimbs_put16(&fr->data, 0x000a); - aimbs_put16(&fr->data, 0x0002); - aimbs_put16(&fr->data, 0x0001); - - /* TLV t(0003) (IP) */ - aimbs_put16(&fr->data, 0x0003); - aimbs_put16(&fr->data, 0x0004); - aimbs_putraw(&fr->data, ip, 4); - - /* TLV t(0005) (port) */ - aimbs_put16(&fr->data, 0x0005); - aimbs_put16(&fr->data, 0x0002); - aimbs_put16(&fr->data, port); - - /* TLV t(000f) */ - aimbs_put16(&fr->data, 0x000f); - aimbs_put16(&fr->data, 0x0000); - - /* TLV t(2711) */ - aimbs_put16(&fr->data, 0x2711); - aimbs_put16(&fr->data, 2+2+4+strlen(filename)+4); - - /* ? */ - aimbs_put16(&fr->data, 0x0001); - aimbs_put16(&fr->data, numfiles); - aimbs_put32(&fr->data, totsize); - aimbs_putraw(&fr->data, (guint8 *)filename, strlen(filename)); - - /* ? */ - aimbs_put32(&fr->data, 0x00000000); - - aim_tx_enqueue(sess, fr); - - return 0; -} - -/** - * Request the status message of the given ICQ user. - * - * @param sess The oscar session. - * @param sn The UIN of the user of whom you wish to request info. - * @param type The type of info you wish to request. This should be the current - * state of the user, as one of the AIM_ICQ_STATE_* defines. - * @return Return 0 if no errors, otherwise return the error number. - */ -int aim_send_im_ch2_geticqmessage(aim_session_t *sess, const char *sn, int type) -{ - aim_conn_t *conn; - int i; - guint8 ck[8]; - aim_frame_t *fr; - aim_snacid_t snacid; - - if (!sess || !(conn = aim_conn_findbygroup(sess, 0x0004)) || !sn) - return -EINVAL; - - for (i = 0; i < 8; i++) - aimutil_put8(ck+i, (guint8) rand()); - - if (!(fr = aim_tx_new(sess, conn, AIM_FRAMETYPE_FLAP, 0x02, 10+8+2+1+strlen(sn) + 4+0x5e + 4))) - return -ENOMEM; - - snacid = aim_cachesnac(sess, 0x0004, 0x0006, 0x0000, NULL, 0); - aim_putsnac(&fr->data, 0x0004, 0x0006, 0x0000, snacid); - - /* Cookie */ - aimbs_putraw(&fr->data, ck, 8); - - /* Channel (2) */ - aimbs_put16(&fr->data, 0x0002); - - /* Dest sn */ - aimbs_put8(&fr->data, strlen(sn)); - aimbs_putraw(&fr->data, (guint8 *)sn, strlen(sn)); - - /* TLV t(0005) - Encompasses almost everything below. */ - aimbs_put16(&fr->data, 0x0005); /* T */ - aimbs_put16(&fr->data, 0x005e); /* L */ - { /* V */ - aimbs_put16(&fr->data, 0x0000); - - /* Cookie */ - aimbs_putraw(&fr->data, ck, 8); - - /* Put the 16 byte server relay capability */ - aim_putcap(&fr->data, AIM_CAPS_ICQSERVERRELAY); - - /* TLV t(000a) */ - aimbs_put16(&fr->data, 0x000a); - aimbs_put16(&fr->data, 0x0002); - aimbs_put16(&fr->data, 0x0001); - - /* TLV t(000f) */ - aimbs_put16(&fr->data, 0x000f); - aimbs_put16(&fr->data, 0x0000); - - /* TLV t(2711) */ - aimbs_put16(&fr->data, 0x2711); - aimbs_put16(&fr->data, 0x0036); - { /* V */ - aimbs_putle16(&fr->data, 0x001b); /* L */ - aimbs_putle16(&fr->data, 0x0008); /* AAA - Protocol version */ - aimbs_putle32(&fr->data, 0x00000000); /* Unknown */ - aimbs_putle32(&fr->data, 0x00000000); /* Unknown */ - aimbs_putle32(&fr->data, 0x00000000); /* Unknown */ - aimbs_putle32(&fr->data, 0x00000000); /* Unknown */ - aimbs_putle16(&fr->data, 0x0000); /* Unknown */ - aimbs_putle16(&fr->data, 0x0003); /* Client features? */ - aimbs_putle16(&fr->data, 0x0000); /* Unknown */ - aimbs_putle8(&fr->data, 0x00); /* Unkizown */ - aimbs_putle16(&fr->data, 0xffff); /* Sequence number? XXX - This should decrement by 1 with each request */ - - aimbs_putle16(&fr->data, 0x000e); /* L */ - aimbs_putle16(&fr->data, 0xffff); /* Sequence number? XXX - This should decrement by 1 with each request */ - aimbs_putle32(&fr->data, 0x00000000); /* Unknown */ - aimbs_putle32(&fr->data, 0x00000000); /* Unknown */ - aimbs_putle32(&fr->data, 0x00000000); /* Unknown */ - - /* The type of status message being requested */ - if (type & AIM_ICQ_STATE_CHAT) - aimbs_putle16(&fr->data, 0x03ec); - else if(type & AIM_ICQ_STATE_DND) - aimbs_putle16(&fr->data, 0x03eb); - else if(type & AIM_ICQ_STATE_OUT) - aimbs_putle16(&fr->data, 0x03ea); - else if(type & AIM_ICQ_STATE_BUSY) - aimbs_putle16(&fr->data, 0x03e9); - else if(type & AIM_ICQ_STATE_AWAY) - aimbs_putle16(&fr->data, 0x03e8); - - aimbs_putle16(&fr->data, 0x0000); /* Status? */ - aimbs_putle16(&fr->data, 0x0001); /* Priority of this message? */ - aimbs_putle16(&fr->data, 0x0001); /* L? */ - aimbs_putle8(&fr->data, 0x00); /* Null termination? */ - } /* End TLV t(2711) */ - } /* End TLV t(0005) */ - - /* TLV t(0003) */ - aimbs_put16(&fr->data, 0x0003); - aimbs_put16(&fr->data, 0x0000); - - aim_tx_enqueue(sess, fr); - - return 0; -} - /** * answers status message requests * @param sess the oscar session @@ -1052,61 +498,6 @@ static int mpmsg_addsection(aim_session_t *sess, aim_mpmsg_t *mpm, guint16 chars return 0; } -int aim_mpmsg_addraw(aim_session_t *sess, aim_mpmsg_t *mpm, guint16 charset, guint16 charsubset, const guint8 *data, guint16 datalen) -{ - guint8 *dup; - - if (!(dup = g_malloc(datalen))) - return -1; - memcpy(dup, data, datalen); - - if (mpmsg_addsection(sess, mpm, charset, charsubset, dup, datalen) == -1) { - g_free(dup); - return -1; - } - - return 0; -} - -/* XXX should provide a way of saying ISO-8859-1 specifically */ -int aim_mpmsg_addascii(aim_session_t *sess, aim_mpmsg_t *mpm, const char *ascii) -{ - char *dup; - - if (!(dup = g_strdup(ascii))) - return -1; - - if (mpmsg_addsection(sess, mpm, 0x0000, 0x0000, (guint8 *)dup, (guint16) strlen(ascii)) == -1) { - g_free(dup); - return -1; - } - - return 0; -} - -int aim_mpmsg_addunicode(aim_session_t *sess, aim_mpmsg_t *mpm, const guint16 *unicode, guint16 unicodelen) -{ - guint8 *buf; - aim_bstream_t bs; - int i; - - if (!(buf = g_malloc(unicodelen * 2))) - return -1; - - aim_bstream_init(&bs, buf, unicodelen * 2); - - /* We assume unicode is in /host/ byte order -- convert to network */ - for (i = 0; i < unicodelen; i++) - aimbs_put16(&bs, unicode[i]); - - if (mpmsg_addsection(sess, mpm, 0x0002, 0x0000, buf, aim_bstream_curpos(&bs)) == -1) { - g_free(buf); - return -1; - } - - return 0; -} - void aim_mpmsg_free(aim_session_t *sess, aim_mpmsg_t *mpm) { aim_mpmsg_section_t *cur; @@ -1790,44 +1181,6 @@ static int incomingim(aim_session_t *sess, aim_module_t *mod, aim_frame_t *rx, a } /* - * Possible codes: - * AIM_TRANSFER_DENY_NOTSUPPORTED -- "client does not support" - * AIM_TRANSFER_DENY_DECLINE -- "client has declined transfer" - * AIM_TRANSFER_DENY_NOTACCEPTING -- "client is not accepting transfers" - * - */ -int aim_denytransfer(aim_session_t *sess, const char *sender, const guint8 *cookie, guint16 code) -{ - aim_conn_t *conn; - aim_frame_t *fr; - aim_snacid_t snacid; - aim_tlvlist_t *tl = NULL; - - if (!sess || !(conn = aim_conn_findbygroup(sess, 0x0004))) - return -EINVAL; - - if (!(fr = aim_tx_new(sess, conn, AIM_FRAMETYPE_FLAP, 0x02, 10+8+2+1+strlen(sender)+6))) - return -ENOMEM; - - snacid = aim_cachesnac(sess, 0x0004, 0x000b, 0x0000, NULL, 0); - aim_putsnac(&fr->data, 0x0004, 0x000b, 0x0000, snacid); - - aimbs_putraw(&fr->data, cookie, 8); - - aimbs_put16(&fr->data, 0x0002); /* channel */ - aimbs_put8(&fr->data, strlen(sender)); - aimbs_putraw(&fr->data, (guint8 *)sender, strlen(sender)); - - aim_addtlvtochain16(&tl, 0x0003, code); - aim_writetlvchain(&fr->data, &tl); - aim_freetlvchain(&tl); - - aim_tx_enqueue(sess, fr); - - return 0; -} - -/* * aim_reqicbmparaminfo() * * Request ICBM parameter information. diff --git a/protocols/oscar/im.h b/protocols/oscar/im.h index 42a8a6b1..34d5e238 100644 --- a/protocols/oscar/im.h +++ b/protocols/oscar/im.h @@ -46,9 +46,6 @@ typedef struct aim_mpmsg_s { } aim_mpmsg_t; int aim_mpmsg_init(aim_session_t *sess, aim_mpmsg_t *mpm); -int aim_mpmsg_addraw(aim_session_t *sess, aim_mpmsg_t *mpm, guint16 charset, guint16 charsubset, const guint8 *data, guint16 datalen); -int aim_mpmsg_addascii(aim_session_t *sess, aim_mpmsg_t *mpm, const char *ascii); -int aim_mpmsg_addunicode(aim_session_t *sess, aim_mpmsg_t *mpm, const guint16 *unicode, guint16 unicodelen); void aim_mpmsg_free(aim_session_t *sess, aim_mpmsg_t *mpm); /* @@ -85,16 +82,6 @@ struct aim_sendimext_args { }; /* - * Arguments to aim_send_rtfmsg(). - */ -struct aim_sendrtfmsg_args { - const char *destsn; - guint32 fgcolor; - guint32 bgcolor; - const char *rtfmsg; /* must be in RTF */ -}; - -/* * This information is provided in the Incoming ICBM callback for * Channel 1 ICBM's. * @@ -182,18 +169,14 @@ struct aim_incomingim_ch4_args { char *msg; /* Reason for auth request, deny, or accept */ }; -int aim_send_rtfmsg(aim_session_t *sess, struct aim_sendrtfmsg_args *args); int aim_send_im_ext(aim_session_t *sess, struct aim_sendimext_args *args); int aim_send_im(aim_session_t *, const char *destsn, unsigned short flags, const char *msg); -int aim_send_icon(aim_session_t *sess, const char *sn, const guint8 *icon, int iconlen, time_t stamp, guint16 iconsum); -guint16 aim_iconsum(const guint8 *buf, int buflen); int aim_send_typing(aim_session_t *sess, aim_conn_t *conn, int typing); int aim_send_im_direct(aim_session_t *, aim_conn_t *, const char *msg, int len); const char *aim_directim_getsn(aim_conn_t *conn); aim_conn_t *aim_directim_initiate(aim_session_t *, const char *destsn); aim_conn_t *aim_directim_connect(aim_session_t *, const char *sn, const char *addr, const guint8 *cookie); -int aim_send_im_ch2_geticqmessage(aim_session_t *sess, const char *sn, int type); int aim_im_sendmtn(aim_session_t *sess, guint16 type1, const char *sn, guint16 type2); int aim_send_im_ch2_statusmessage(aim_session_t *sess, const char *sender, const guint8 *cookie, const char *message, const guint8 state, const guint16 dc); diff --git a/protocols/oscar/info.c b/protocols/oscar/info.c index 7cc1dbbc..a5a65147 100644 --- a/protocols/oscar/info.c +++ b/protocols/oscar/info.c @@ -40,79 +40,6 @@ int aim_getinfo(aim_session_t *sess, aim_conn_t *conn, const char *sn, guint16 i return 0; } -const char *aim_userinfo_sn(aim_userinfo_t *ui) -{ - - if (!ui) - return NULL; - - return ui->sn; -} - -guint16 aim_userinfo_flags(aim_userinfo_t *ui) -{ - - if (!ui) - return 0; - - return ui->flags; -} - -guint16 aim_userinfo_idle(aim_userinfo_t *ui) -{ - - if (!ui) - return 0; - - return ui->idletime; -} - -float aim_userinfo_warnlevel(aim_userinfo_t *ui) -{ - - if (!ui) - return 0.00; - - return (ui->warnlevel / 10); -} - -time_t aim_userinfo_membersince(aim_userinfo_t *ui) -{ - - if (!ui) - return 0; - - return (time_t)ui->membersince; -} - -time_t aim_userinfo_onlinesince(aim_userinfo_t *ui) -{ - - if (!ui) - return 0; - - return (time_t)ui->onlinesince; -} - -guint32 aim_userinfo_sessionlen(aim_userinfo_t *ui) -{ - - if (!ui) - return 0; - - return ui->sessionlen; -} - -int aim_userinfo_hascap(aim_userinfo_t *ui, guint32 cap) -{ - - if (!ui || !(ui->present & AIM_USERINFO_PRESENT_CAPABILITIES)) - return -1; - - return !!(ui->capabilities & cap); -} - - /* * Capability blocks. * @@ -486,113 +413,6 @@ int aim_extractuserinfo(aim_session_t *sess, aim_bstream_t *bs, aim_userinfo_t * } /* - * Inverse of aim_extractuserinfo() - */ -int aim_putuserinfo(aim_bstream_t *bs, aim_userinfo_t *info) -{ - aim_tlvlist_t *tlvlist = NULL; - - if (!bs || !info) - return -EINVAL; - - aimbs_put8(bs, strlen(info->sn)); - aimbs_putraw(bs, (guint8 *)info->sn, strlen(info->sn)); - - aimbs_put16(bs, info->warnlevel); - - - aim_addtlvtochain16(&tlvlist, 0x0001, info->flags); - aim_addtlvtochain32(&tlvlist, 0x0002, info->membersince); - aim_addtlvtochain32(&tlvlist, 0x0003, info->onlinesince); - aim_addtlvtochain16(&tlvlist, 0x0004, info->idletime); - -#if ICQ_OSCAR_SUPPORT - if (atoi(info->sn) != 0) { - aim_addtlvtochain16(&tlvlist, 0x0006, info->icqinfo.status); - aim_addtlvtochain32(&tlvlist, 0x000a, info->icqinfo.ipaddr); - } -#endif - - aim_addtlvtochain_caps(&tlvlist, 0x000d, info->capabilities); - - aim_addtlvtochain32(&tlvlist, (guint16)((info->flags & AIM_FLAG_AOL) ? 0x0010 : 0x000f), info->sessionlen); - - aimbs_put16(bs, aim_counttlvchain(&tlvlist)); - aim_writetlvchain(bs, &tlvlist); - aim_freetlvchain(&tlvlist); - - return 0; -} - -int aim_sendbuddyoncoming(aim_session_t *sess, aim_conn_t *conn, aim_userinfo_t *info) -{ - aim_frame_t *fr; - aim_snacid_t snacid; - - if (!sess || !conn || !info) - return -EINVAL; - - if (!(fr = aim_tx_new(sess, conn, AIM_FRAMETYPE_FLAP, 0x02, 1152))) - return -ENOMEM; - - snacid = aim_cachesnac(sess, 0x0003, 0x000b, 0x0000, NULL, 0); - - aim_putsnac(&fr->data, 0x0003, 0x000b, 0x0000, snacid); - aim_putuserinfo(&fr->data, info); - - aim_tx_enqueue(sess, fr); - - return 0; -} - -int aim_sendbuddyoffgoing(aim_session_t *sess, aim_conn_t *conn, const char *sn) -{ - aim_frame_t *fr; - aim_snacid_t snacid; - - if (!sess || !conn || !sn) - return -EINVAL; - - if (!(fr = aim_tx_new(sess, conn, AIM_FRAMETYPE_FLAP, 0x02, 10+1+strlen(sn)))) - return -ENOMEM; - - snacid = aim_cachesnac(sess, 0x0003, 0x000c, 0x0000, NULL, 0); - - aim_putsnac(&fr->data, 0x0003, 0x000c, 0x0000, snacid); - aimbs_put8(&fr->data, strlen(sn)); - aimbs_putraw(&fr->data, (guint8 *)sn, strlen(sn)); - - aim_tx_enqueue(sess, fr); - - return 0; -} - -/* - * Huh? What is this? - */ -int aim_0002_000b(aim_session_t *sess, aim_conn_t *conn, const char *sn) -{ - aim_frame_t *fr; - aim_snacid_t snacid; - - if (!sess || !conn || !sn) - return -EINVAL; - - if (!(fr = aim_tx_new(sess, conn, AIM_FRAMETYPE_FLAP, 0x02, 10+1+strlen(sn)))) - return -ENOMEM; - - snacid = aim_cachesnac(sess, 0x0002, 0x000b, 0x0000, NULL, 0); - - aim_putsnac(&fr->data, 0x0002, 0x000b, 0x0000, snacid); - aimbs_put8(&fr->data, strlen(sn)); - aimbs_putraw(&fr->data, (guint8 *)sn, strlen(sn)); - - aim_tx_enqueue(sess, fr); - - return 0; -} - -/* * Normally contains: * t(0001) - short containing max profile length (value = 1024) * t(0002) - short - unknown (value = 16) [max MIME type length?] diff --git a/protocols/oscar/info.h b/protocols/oscar/info.h index b4d99e9f..5651f187 100644 --- a/protocols/oscar/info.h +++ b/protocols/oscar/info.h @@ -39,6 +39,4 @@ #define AIM_CAPS_EXTCHAN2 0x00100000 #define AIM_CAPS_LAST 0x00200000 -int aim_0002_000b(aim_session_t *sess, aim_conn_t *conn, const char *sn); - #endif /* __OSCAR_INFO_H__ */ diff --git a/protocols/oscar/misc.c b/protocols/oscar/misc.c index 58fb6c31..950cd852 100644 --- a/protocols/oscar/misc.c +++ b/protocols/oscar/misc.c @@ -13,56 +13,6 @@ #include <aim.h> -/* - * aim_bos_setbuddylist(buddylist) - * - * This just builds the "set buddy list" command then queues it. - * - * buddy_list = "Screen Name One&ScreenNameTwo&"; - * - * TODO: Clean this up. - * - * XXX: I can't stress the TODO enough. - * - */ -int aim_bos_setbuddylist(aim_session_t *sess, aim_conn_t *conn, const char *buddy_list) -{ - aim_frame_t *fr; - aim_snacid_t snacid; - int len = 0; - char *localcpy = NULL; - char *tmpptr = NULL; - - if (!buddy_list || !(localcpy = g_strdup(buddy_list))) - return -EINVAL; - - for (tmpptr = strtok(localcpy, "&"); tmpptr; ) { - len += 1 + strlen(tmpptr); - tmpptr = strtok(NULL, "&"); - } - - if (!(fr = aim_tx_new(sess, conn, AIM_FRAMETYPE_FLAP, 0x02, 10+len))) - return -ENOMEM; - - snacid = aim_cachesnac(sess, 0x0003, 0x0004, 0x0000, NULL, 0); - aim_putsnac(&fr->data, 0x0003, 0x0004, 0x0000, snacid); - - strncpy(localcpy, buddy_list, strlen(buddy_list) + 1); - - for (tmpptr = strtok(localcpy, "&"); tmpptr; ) { - - aimbs_put8(&fr->data, strlen(tmpptr)); - aimbs_putraw(&fr->data, (guint8 *)tmpptr, strlen(tmpptr)); - tmpptr = strtok(NULL, "&"); - } - - aim_tx_enqueue(sess, fr); - - g_free(localcpy); - - return 0; -} - /* * aim_bos_setprofile(profile) * @@ -126,40 +76,6 @@ int aim_bos_reqbuddyrights(aim_session_t *sess, aim_conn_t *conn) } /* - * Send a warning to destsn. - * - * Flags: - * AIM_WARN_ANON Send as an anonymous (doesn't count as much) - * - * returns -1 on error (couldn't alloc packet), 0 on success. - * - */ -int aim_send_warning(aim_session_t *sess, aim_conn_t *conn, const char *destsn, guint32 flags) -{ - aim_frame_t *fr; - aim_snacid_t snacid; - guint16 outflags = 0x0000; - - if (!(fr = aim_tx_new(sess, conn, AIM_FRAMETYPE_FLAP, 0x02, strlen(destsn)+13))) - return -ENOMEM; - - snacid = aim_cachesnac(sess, 0x0004, 0x0008, 0x0000, destsn, strlen(destsn)+1); - - aim_putsnac(&fr->data, 0x0004, 0x0008, 0x0000, snacid); - - if (flags & AIM_WARN_ANON) - outflags |= 0x0001; - - aimbs_put16(&fr->data, outflags); - aimbs_put8(&fr->data, strlen(destsn)); - aimbs_putraw(&fr->data, (guint8 *)destsn, strlen(destsn)); - - aim_tx_enqueue(sess, fr); - - return 0; -} - -/* * Generic routine for sending commands. * * @@ -255,90 +171,6 @@ int aim_bos_reqlocaterights(aim_session_t *sess, aim_conn_t *conn) return aim_genericreq_n(sess, conn, 0x0002, 0x0002); } -/* - * Set directory profile data (not the same as aim_bos_setprofile!) - * - * privacy: 1 to allow searching, 0 to disallow. - */ -int aim_setdirectoryinfo(aim_session_t *sess, aim_conn_t *conn, const char *first, const char *middle, const char *last, const char *maiden, const char *nickname, const char *street, const char *city, const char *state, const char *zip, int country, guint16 privacy) -{ - aim_frame_t *fr; - aim_snacid_t snacid; - aim_tlvlist_t *tl = NULL; - - - aim_addtlvtochain16(&tl, 0x000a, privacy); - - if (first) - aim_addtlvtochain_raw(&tl, 0x0001, strlen(first), (guint8 *)first); - if (last) - aim_addtlvtochain_raw(&tl, 0x0002, strlen(last), (guint8 *)last); - if (middle) - aim_addtlvtochain_raw(&tl, 0x0003, strlen(middle), (guint8 *)middle); - if (maiden) - aim_addtlvtochain_raw(&tl, 0x0004, strlen(maiden), (guint8 *)maiden); - - if (state) - aim_addtlvtochain_raw(&tl, 0x0007, strlen(state), (guint8 *)state); - if (city) - aim_addtlvtochain_raw(&tl, 0x0008, strlen(city), (guint8 *)city); - - if (nickname) - aim_addtlvtochain_raw(&tl, 0x000c, strlen(nickname), (guint8 *)nickname); - if (zip) - aim_addtlvtochain_raw(&tl, 0x000d, strlen(zip), (guint8 *)zip); - - if (street) - aim_addtlvtochain_raw(&tl, 0x0021, strlen(street), (guint8 *)street); - - if (!(fr = aim_tx_new(sess, conn, AIM_FRAMETYPE_FLAP, 0x02, 10+aim_sizetlvchain(&tl)))) - return -ENOMEM; - - snacid = aim_cachesnac(sess, 0x0002, 0x0009, 0x0000, NULL, 0); - - aim_putsnac(&fr->data, 0x0002, 0x0009, 0x0000, snacid); - aim_writetlvchain(&fr->data, &tl); - aim_freetlvchain(&tl); - - aim_tx_enqueue(sess, fr); - - return 0; -} - -/* XXX pass these in better */ -int aim_setuserinterests(aim_session_t *sess, aim_conn_t *conn, const char *interest1, const char *interest2, const char *interest3, const char *interest4, const char *interest5, guint16 privacy) -{ - aim_frame_t *fr; - aim_tlvlist_t *tl = NULL; - - /* ?? privacy ?? */ - aim_addtlvtochain16(&tl, 0x000a, privacy); - - if (interest1) - aim_addtlvtochain_raw(&tl, 0x0000b, strlen(interest1), (guint8 *)interest1); - if (interest2) - aim_addtlvtochain_raw(&tl, 0x0000b, strlen(interest2), (guint8 *)interest2); - if (interest3) - aim_addtlvtochain_raw(&tl, 0x0000b, strlen(interest3), (guint8 *)interest3); - if (interest4) - aim_addtlvtochain_raw(&tl, 0x0000b, strlen(interest4), (guint8 *)interest4); - if (interest5) - aim_addtlvtochain_raw(&tl, 0x0000b, strlen(interest5), (guint8 *)interest5); - - if (!(fr = aim_tx_new(sess, conn, AIM_FRAMETYPE_FLAP, 0x02, 10+aim_sizetlvchain(&tl)))) - return -ENOMEM; - - aim_cachesnac(sess, 0x0002, 0x000f, 0x0000, NULL, 0); - - aim_putsnac(&fr->data, 0x0002, 0x000f, 0x0000, 0); - aim_writetlvchain(&fr->data, &tl); - aim_freetlvchain(&tl); - - aim_tx_enqueue(sess, fr); - - return 0; -} - /* * Should be generic enough to handle the errors for all groups. * diff --git a/protocols/oscar/oscar.c b/protocols/oscar/oscar.c index 1366fe41..a5e177e9 100644 --- a/protocols/oscar/oscar.c +++ b/protocols/oscar/oscar.c @@ -2102,47 +2102,6 @@ static int gaim_ssi_parseack( aim_session_t *sess, aim_frame_t *fr, ... ) return( 1 ); } -static void oscar_set_permit_deny(struct im_connection *ic) { - struct oscar_data *od = (struct oscar_data *)ic->proto_data; - if (od->icq) { - GSList *list; - char buf[MAXMSGLEN]; - int at; - - switch(ic->permdeny) { - case 1: - aim_bos_changevisibility(od->sess, od->conn, AIM_VISIBILITYCHANGE_DENYADD, ic->acc->user); - break; - case 2: - aim_bos_changevisibility(od->sess, od->conn, AIM_VISIBILITYCHANGE_PERMITADD, ic->acc->user); - break; - case 3: - list = ic->permit; - at = 0; - while (list) { - at += g_snprintf(buf + at, sizeof(buf) - at, "%s&", (char *)list->data); - list = list->next; - } - aim_bos_changevisibility(od->sess, od->conn, AIM_VISIBILITYCHANGE_PERMITADD, buf); - break; - case 4: - list = ic->deny; - at = 0; - while (list) { - at += g_snprintf(buf + at, sizeof(buf) - at, "%s&", (char *)list->data); - list = list->next; - } - aim_bos_changevisibility(od->sess, od->conn, AIM_VISIBILITYCHANGE_DENYADD, buf); - break; - default: - break; - } - } else { - if (od->sess->ssi.received_data) - aim_ssi_setpermdeny(od->sess, od->conn, ic->permdeny, 0xffffffff); - } -} - static void oscar_add_permit(struct im_connection *ic, char *who) { struct oscar_data *od = (struct oscar_data *)ic->proto_data; if (od->icq) { @@ -2623,7 +2582,6 @@ void oscar_initmodule() ret->add_deny = oscar_add_deny; ret->rem_permit = oscar_rem_permit; ret->rem_deny = oscar_rem_deny; - ret->set_permit_deny = oscar_set_permit_deny; ret->send_typing = oscar_send_typing; ret->handle_cmp = aim_sncmp; diff --git a/protocols/oscar/oscar_util.c b/protocols/oscar/oscar_util.c index 0ce06bd9..7d41d383 100644 --- a/protocols/oscar/oscar_util.c +++ b/protocols/oscar/oscar_util.c @@ -1,96 +1,6 @@ #include <aim.h> #include <ctype.h> -int aimutil_putstr(u_char *dest, const char *src, int len) -{ - memcpy(dest, src, len); - return len; -} - -/* - * Tokenizing functions. Used to portably replace strtok/sep. - * -- DMP. - * - */ -int aimutil_tokslen(char *toSearch, int index, char dl) -{ - int curCount = 1; - char *next; - char *last; - int toReturn; - - last = toSearch; - next = strchr(toSearch, dl); - - while(curCount < index && next != NULL) { - curCount++; - last = next + 1; - next = strchr(last, dl); - } - - if ((curCount < index) || (next == NULL)) - toReturn = strlen(toSearch) - (curCount - 1); - else - toReturn = next - toSearch - (curCount - 1); - - return toReturn; -} - -int aimutil_itemcnt(char *toSearch, char dl) -{ - int curCount; - char *next; - - curCount = 1; - - next = strchr(toSearch, dl); - - while(next != NULL) { - curCount++; - next = strchr(next + 1, dl); - } - - return curCount; -} - -char *aimutil_itemidx(char *toSearch, int index, char dl) -{ - int curCount; - char *next; - char *last; - char *toReturn; - - curCount = 0; - - last = toSearch; - next = strchr(toSearch, dl); - - while (curCount < index && next != NULL) { - curCount++; - last = next + 1; - next = strchr(last, dl); - } - - if (curCount < index) { - toReturn = g_strdup(""); - } - next = strchr(last, dl); - - if (curCount < index) { - toReturn = g_strdup(""); - } else { - if (next == NULL) { - toReturn = g_malloc((strlen(last) + 1) * sizeof(char)); - strcpy(toReturn, last); - } else { - toReturn = g_malloc((next - last + 1) * sizeof(char)); - memcpy(toReturn, last, (next - last)); - toReturn[next - last] = '\0'; - } - } - return toReturn; -} - /* * int snlen(const char *) * diff --git a/protocols/oscar/rxhandlers.c b/protocols/oscar/rxhandlers.c index 7014e693..bd071505 100644 --- a/protocols/oscar/rxhandlers.c +++ b/protocols/oscar/rxhandlers.c @@ -285,18 +285,6 @@ aim_rxcallback_t aim_callhandler(aim_session_t *sess, aim_conn_t *conn, guint16 return aim_callhandler(sess, conn, family, AIM_CB_SPECIAL_DEFAULT); } -void aim_clonehandlers(aim_session_t *sess, aim_conn_t *dest, aim_conn_t *src) -{ - struct aim_rxcblist_s *cur; - - for (cur = (struct aim_rxcblist_s *)src->handlerlist; cur; cur = cur->next) { - aim_conn_addhandler(sess, dest, cur->family, cur->type, - cur->handler, cur->flags); - } - - return; -} - static int aim_callhandler_noparam(aim_session_t *sess, aim_conn_t *conn,guint16 family, guint16 type, aim_frame_t *ptr) { aim_rxcallback_t userfunc; diff --git a/protocols/oscar/search.c b/protocols/oscar/search.c index 3570e4df..4e0d3858 100644 --- a/protocols/oscar/search.c +++ b/protocols/oscar/search.c @@ -8,27 +8,6 @@ #include <aim.h> -int aim_usersearch_address(aim_session_t *sess, aim_conn_t *conn, const char *address) -{ - aim_frame_t *fr; - aim_snacid_t snacid; - - if (!sess || !conn || !address) - return -EINVAL; - - if (!(fr = aim_tx_new(sess, conn, AIM_FRAMETYPE_FLAP, 0x02, 10+strlen(address)))) - return -ENOMEM; - - snacid = aim_cachesnac(sess, 0x000a, 0x0002, 0x0000, g_strdup(address), strlen(address)+1); - aim_putsnac(&fr->data, 0x000a, 0x0002, 0x0000, snacid); - - aimbs_putraw(&fr->data, (guint8 *)address, strlen(address)); - - aim_tx_enqueue(sess, fr); - - return 0; -} - /* XXX can this be integrated with the rest of the error handling? */ static int error(aim_session_t *sess, aim_module_t *mod, aim_frame_t *rx, aim_modsnac_t *snac, aim_bstream_t *bs) { diff --git a/protocols/oscar/search.h b/protocols/oscar/search.h index 77eeb265..d5cf9b4d 100644 --- a/protocols/oscar/search.h +++ b/protocols/oscar/search.h @@ -1,6 +1,4 @@ #ifndef __OSCAR_SEARCH_H__ #define __OSCAR_SEARCH_H__ -int aim_usersearch_address(aim_session_t *, aim_conn_t *, const char *); - #endif /* __OSCAR_SEARCH_H__ */ diff --git a/protocols/oscar/service.c b/protocols/oscar/service.c index a2678764..a3b37c33 100644 --- a/protocols/oscar/service.c +++ b/protocols/oscar/service.c @@ -360,28 +360,6 @@ int aim_rates_addparam(aim_session_t *sess, aim_conn_t *conn) return 0; } -/* Delete Rate Parameter (group 1, type 9) */ -int aim_rates_delparam(aim_session_t *sess, aim_conn_t *conn) -{ - aim_conn_inside_t *ins = (aim_conn_inside_t *)conn->inside; - aim_frame_t *fr; - aim_snacid_t snacid; - struct rateclass *rc; - - if (!(fr = aim_tx_new(sess, conn, AIM_FRAMETYPE_FLAP, 0x02, 512))) - return -ENOMEM; - - snacid = aim_cachesnac(sess, 0x0001, 0x0009, 0x0000, NULL, 0); - aim_putsnac(&fr->data, 0x0001, 0x0009, 0x0000, snacid); - - for (rc = ins->rates; rc; rc = rc->next) - aimbs_put16(&fr->data, rc->classid); - - aim_tx_enqueue(sess, fr); - - return 0; -} - /* Rate Change (group 1, type 0x0a) */ static int ratechange(aim_session_t *sess, aim_module_t *mod, aim_frame_t *rx, aim_modsnac_t *snac, aim_bstream_t *bs) { @@ -430,43 +408,6 @@ static int serverpause(aim_session_t *sess, aim_module_t *mod, aim_frame_t *rx, return 0; } -/* - * Service Pause Acknowledgement (group 1, type 0x0c) - * - * It is rather important that aim_sendpauseack() gets called for the exact - * same connection that the Server Pause callback was called for, since - * libfaim extracts the data for the SNAC from the connection structure. - * - * Of course, if you don't do that, more bad things happen than just what - * libfaim can cause. - * - */ -int aim_sendpauseack(aim_session_t *sess, aim_conn_t *conn) -{ - aim_frame_t *fr; - aim_snacid_t snacid; - aim_conn_inside_t *ins = (aim_conn_inside_t *)conn->inside; - struct snacgroup *sg; - - if (!(fr = aim_tx_new(sess, conn, AIM_FRAMETYPE_FLAP, 0x02, 1024))) - return -ENOMEM; - - snacid = aim_cachesnac(sess, 0x0001, 0x000c, 0x0000, NULL, 0); - aim_putsnac(&fr->data, 0x0001, 0x000c, 0x0000, snacid); - - /* - * This list should have all the groups that the original - * Host Online / Server Ready said this host supports. And - * we want them all back after the migration. - */ - for (sg = ins->groups; sg; sg = sg->next) - aimbs_put16(&fr->data, sg->group); - - aim_tx_enqueue(sess, fr); - - return 0; -} - /* Service Resume (group 1, type 0x0d) */ static int serverresume(aim_session_t *sess, aim_module_t *mod, aim_frame_t *rx, aim_modsnac_t *snac, aim_bstream_t *bs) { @@ -519,20 +460,6 @@ static int evilnotify(aim_session_t *sess, aim_module_t *mod, aim_frame_t *rx, a } /* - * Idle Notification (group 1, type 0x11) - * - * Should set your current idle time in seconds. Note that this should - * never be called consecutively with a non-zero idle time. That makes - * OSCAR do funny things. Instead, just set it once you go idle, and then - * call it again with zero when you're back. - * - */ -int aim_bos_setidle(aim_session_t *sess, aim_conn_t *conn, guint32 idletime) -{ - return aim_genericreq_l(sess, conn, 0x0001, 0x0011, &idletime); -} - -/* * Service Migrate (group 1, type 0x12) * * This is the final SNAC sent on the original connection during a migration. @@ -636,17 +563,6 @@ int aim_bos_setprivacyflags(aim_session_t *sess, aim_conn_t *conn, guint32 flags return aim_genericreq_l(sess, conn, 0x0001, 0x0014, &flags); } -/* - * No-op (group 1, type 0x16) - * - * WinAIM sends these every 4min or so to keep the connection alive. Its not - * real necessary. - * - */ -int aim_nop(aim_session_t *sess, aim_conn_t *conn) -{ - return aim_genericreq_n(sess, conn, 0x0001, 0x0016); -} /* * Set client versions (group 1, subtype 0x17) @@ -810,94 +726,6 @@ static int memrequest(aim_session_t *sess, aim_module_t *mod, aim_frame_t *rx, a return 0; } -/* Client verification reply (group 1, subtype 0x20) */ -int aim_sendmemblock(aim_session_t *sess, aim_conn_t *conn, guint32 offset, guint32 len, const guint8 *buf, guint8 flag) -{ - aim_frame_t *fr; - aim_snacid_t snacid; - - if (!sess || !conn) - return -EINVAL; - - if (!(fr = aim_tx_new(sess, conn, AIM_FRAMETYPE_FLAP, 0x02, 10+2+16))) - return -ENOMEM; - - snacid = aim_cachesnac(sess, 0x0001, 0x0020, 0x0000, NULL, 0); - - aim_putsnac(&fr->data, 0x0001, 0x0020, 0x0000, snacid); - aimbs_put16(&fr->data, 0x0010); /* md5 is always 16 bytes */ - - if ((flag == AIM_SENDMEMBLOCK_FLAG_ISHASH) && buf && (len == 0x10)) { /* we're getting a hash */ - - aimbs_putraw(&fr->data, buf, 0x10); - - } else if (buf && (len > 0)) { /* use input buffer */ - md5_state_t state; - md5_byte_t digest[0x10]; - - md5_init(&state); - md5_append(&state, (const md5_byte_t *)buf, len); - md5_finish(&state, digest); - - aimbs_putraw(&fr->data, (guint8 *)digest, 0x10); - - } else if (len == 0) { /* no length, just hash NULL (buf is optional) */ - md5_state_t state; - guint8 nil = '\0'; - md5_byte_t digest[0x10]; - - /* - * These MD5 routines are stupid in that you have to have - * at least one append. So thats why this doesn't look - * real logical. - */ - md5_init(&state); - md5_append(&state, (const md5_byte_t *)&nil, 0); - md5_finish(&state, digest); - - aimbs_putraw(&fr->data, (guint8 *)digest, 0x10); - - } else { - - /* - * This data is correct for AIM 3.5.1670. - * - * Using these blocks is as close to "legal" as you can get - * without using an AIM binary. - * - */ - if ((offset == 0x03ffffff) && (len == 0x03ffffff)) { - -#if 1 /* with "AnrbnrAqhfzcd" */ - aimbs_put32(&fr->data, 0x44a95d26); - aimbs_put32(&fr->data, 0xd2490423); - aimbs_put32(&fr->data, 0x93b8821f); - aimbs_put32(&fr->data, 0x51c54b01); -#else /* no filename */ - aimbs_put32(&fr->data, 0x1df8cbae); - aimbs_put32(&fr->data, 0x5523b839); - aimbs_put32(&fr->data, 0xa0e10db3); - aimbs_put32(&fr->data, 0xa46d3b39); -#endif - -/* len can't be 0 here anyway... - } else if ((offset == 0x00001000) && (len == 0x00000000)) { - - aimbs_put32(&fr->data, 0xd41d8cd9); - aimbs_put32(&fr->data, 0x8f00b204); - aimbs_put32(&fr->data, 0xe9800998); - aimbs_put32(&fr->data, 0xecf8427e); -*/ - } else - imcb_error(sess->aux_data, "Warning: unknown hash request"); - - } - - aim_tx_enqueue(sess, fr); - - return 0; -} - static int snachandler(aim_session_t *sess, aim_module_t *mod, aim_frame_t *rx, aim_modsnac_t *snac, aim_bstream_t *bs) { diff --git a/protocols/oscar/ssi.c b/protocols/oscar/ssi.c index f37d98e5..e8502f68 100644 --- a/protocols/oscar/ssi.c +++ b/protocols/oscar/ssi.c @@ -262,28 +262,6 @@ int aim_ssi_getpermdeny(struct aim_ssi_item *list) } /** - * Locally find the presence flag item, and return the setting. The returned setting is a - * bitmask of the user flags that you are visible to. See the AIM_FLAG_* #defines - * in aim.h - * - * @param list A pointer to the current list of items. - * @return Return the current visibility mask. - */ -guint32 aim_ssi_getpresence(struct aim_ssi_item *list) -{ - struct aim_ssi_item *cur = aim_ssi_itemlist_finditem(list, NULL, NULL, AIM_SSI_TYPE_PRESENCEPREFS); - if (cur) { - aim_tlvlist_t *tlvlist = cur->data; - if (tlvlist) { - aim_tlv_t *tlv = aim_gettlv(tlvlist, 0x00c9, 1); - if (tlv && tlv->length) - return aimutil_get32(tlv->value); - } - } - return 0xFFFFFFFF; -} - -/** * Add the given packet to the holding queue. We totally need to send SSI SNACs one at * a time, so we have a local queue where packets get put before they are sent, and * then we send stuff one at a time, nice and orderly-like. @@ -344,143 +322,6 @@ static int aim_ssi_dispatch(aim_session_t *sess, aim_conn_t *conn) } /** - * Send SNACs necessary to remove all SSI data from the server list, - * and then free the local copy as well. - * - * @param sess The oscar session. - * @param conn The bos connection for this session. - * @return Return 0 if no errors, otherwise return the error number. - */ -int aim_ssi_deletelist(aim_session_t *sess, aim_conn_t *conn) -{ - int num; - struct aim_ssi_item *cur, **items; - - for (cur=sess->ssi.items, num=0; cur; cur=cur->next) - num++; - - if (!(items = g_new0(struct aim_ssi_item *, num))) - return -ENOMEM; - - for (cur=sess->ssi.items, num=0; cur; cur=cur->next) { - items[num] = cur; - num++; - } - - aim_ssi_addmoddel(sess, conn, items, num, AIM_CB_SSI_DEL); - g_free(items); - aim_ssi_dispatch(sess, conn); - aim_ssi_freelist(sess); - - return 0; -} - -/** - * This "cleans" the ssi list. It does a few things, with the intent of making - * sure there ain't nothin' wrong with your SSI. - * -Make sure all buddies are in a group, and all groups have the correct - * additional data. - * -Make sure there are no empty groups in the list. While there is nothing - * wrong empty groups in the SSI, it's wiser to not have them. - * - * @param sess The oscar session. - * @param conn The bos connection for this session. - * @return Return 0 if no errors, otherwise return the error number. - */ -int aim_ssi_cleanlist(aim_session_t *sess, aim_conn_t *conn) -{ - unsigned int i; - struct aim_ssi_item *cur, *parentgroup; - - /* Make sure we actually need to clean out the list */ - for (cur=sess->ssi.items, i=0; cur && !i; cur=cur->next) - /* Any buddies directly in the master group */ - if ((cur->type == AIM_SSI_TYPE_BUDDY) && (cur->gid == 0x0000)) - i++; - if (!i) - return 0; - - /* Remove all the additional data from all groups */ - for (cur=sess->ssi.items; cur; cur=cur->next) - if ((cur->data) && (cur->type == AIM_SSI_TYPE_GROUP)) { - aim_freetlvchain((aim_tlvlist_t **)&cur->data); - cur->data = NULL; - } - - /* If there are buddies directly in the master group, make sure */ - /* there is a group to put them in. Any group, any group at all. */ - for (cur=sess->ssi.items; ((cur) && ((cur->type != AIM_SSI_TYPE_BUDDY) || (cur->gid != 0x0000))); cur=cur->next); - if (!cur) { - for (parentgroup=sess->ssi.items; ((parentgroup) && (parentgroup->type!=AIM_SSI_TYPE_GROUP) && (parentgroup->gid==0x0000)); parentgroup=parentgroup->next); - if (!parentgroup) { - char *newgroup; - newgroup = (char*)g_malloc(strlen("Unknown")+1); - strcpy(newgroup, "Unknown"); - aim_ssi_addgroups(sess, conn, &newgroup, 1); - } - } - - /* Set parentgroup equal to any arbitray group */ - for (parentgroup=sess->ssi.items; parentgroup->gid==0x0000 || parentgroup->type!=AIM_SSI_TYPE_GROUP; parentgroup=parentgroup->next); - - /* If there are any buddies directly in the master group, put them in a real group */ - for (cur=sess->ssi.items; cur; cur=cur->next) - if ((cur->type == AIM_SSI_TYPE_BUDDY) && (cur->gid == 0x0000)) { - aim_ssi_addmoddel(sess, conn, &cur, 1, AIM_CB_SSI_DEL); - cur->gid = parentgroup->gid; - aim_ssi_addmoddel(sess, conn, &cur, 1, AIM_CB_SSI_ADD); - } - - /* Rebuild additional data for all groups */ - for (parentgroup=sess->ssi.items; parentgroup; parentgroup=parentgroup->next) - if (parentgroup->type == AIM_SSI_TYPE_GROUP) - aim_ssi_itemlist_rebuildgroup(&sess->ssi.items, parentgroup); - - /* Send a mod snac for all groups */ - i = 0; - for (cur=sess->ssi.items; cur; cur=cur->next) - if (cur->type == AIM_SSI_TYPE_GROUP) - i++; - if (i > 0) { - /* Allocate an array of pointers to each of the groups */ - struct aim_ssi_item **groups; - if (!(groups = g_new0(struct aim_ssi_item *, i))) - return -ENOMEM; - - for (cur=sess->ssi.items, i=0; cur; cur=cur->next) - if (cur->type == AIM_SSI_TYPE_GROUP) - groups[i] = cur; - - aim_ssi_addmoddel(sess, conn, groups, i, AIM_CB_SSI_MOD); - g_free(groups); - } - - /* Send a del snac for any empty groups */ - i = 0; - for (cur=sess->ssi.items; cur; cur=cur->next) - if ((cur->type == AIM_SSI_TYPE_GROUP) && !(cur->data)) - i++; - if (i > 0) { - /* Allocate an array of pointers to each of the groups */ - struct aim_ssi_item **groups; - if (!(groups = g_new0(struct aim_ssi_item *, i))) - return -ENOMEM; - - for (cur=sess->ssi.items, i=0; cur; cur=cur->next) - if ((cur->type == AIM_SSI_TYPE_GROUP) && !(cur->data)) - groups[i] = cur; - - aim_ssi_addmoddel(sess, conn, groups, i, AIM_CB_SSI_DEL); - g_free(groups); - } - - /* Begin sending SSI SNACs */ - aim_ssi_dispatch(sess, conn); - - return 0; -} - -/** * Add an array of screen names to the given group. * * @param sess The oscar session. @@ -998,128 +839,6 @@ int aim_ssi_delpord(aim_session_t *sess, aim_conn_t *conn, char **sn, unsigned i return 0; } -/** - * Stores your permit/deny setting on the server, and starts using it. - * - * @param sess The oscar session. - * @param conn The bos connection for this session. - * @param permdeny Your permit/deny setting. Can be one of the following: - * 1 - Allow all users - * 2 - Block all users - * 3 - Allow only the users below - * 4 - Block only the users below - * 5 - Allow only users on my buddy list - * @param vismask A bitmask of the class of users to whom you want to be - * visible. See the AIM_FLAG_BLEH #defines in aim.h - * @return Return 0 if no errors, otherwise return the error number. - */ -int aim_ssi_setpermdeny(aim_session_t *sess, aim_conn_t *conn, guint8 permdeny, guint32 vismask) { - struct aim_ssi_item *cur; //, *tmp; -// guint16 j; - aim_tlv_t *tlv; - - if (!sess || !conn) - return -EINVAL; - - /* Look up the permit/deny settings item */ - cur = aim_ssi_itemlist_finditem(sess->ssi.items, NULL, NULL, AIM_SSI_TYPE_PDINFO); - - if (cur) { - /* The permit/deny item exists */ - if (cur->data && (tlv = aim_gettlv(cur->data, 0x00ca, 1))) { - /* Just change the value of the x00ca TLV */ - if (tlv->length != 1) { - tlv->length = 1; - g_free(tlv->value); - tlv->value = (guint8 *)g_malloc(sizeof(guint8)); - } - tlv->value[0] = permdeny; - } else { - /* Need to add the x00ca TLV to the TLV chain */ - aim_addtlvtochain8((aim_tlvlist_t**)&cur->data, 0x00ca, permdeny); - } - - if (cur->data && (tlv = aim_gettlv(cur->data, 0x00cb, 1))) { - /* Just change the value of the x00cb TLV */ - if (tlv->length != 4) { - tlv->length = 4; - g_free(tlv->value); - tlv->value = (guint8 *)g_malloc(4*sizeof(guint8)); - } - aimutil_put32(tlv->value, vismask); - } else { - /* Need to add the x00cb TLV to the TLV chain */ - aim_addtlvtochain32((aim_tlvlist_t**)&cur->data, 0x00cb, vismask); - } - - /* Send the mod item SNAC */ - aim_ssi_addmoddel(sess, conn, &cur, 1, AIM_CB_SSI_MOD); - } else { - /* Need to add the permit/deny item */ - if (!(cur = aim_ssi_itemlist_add(&sess->ssi.items, NULL, NULL, AIM_SSI_TYPE_PDINFO))) - return -ENOMEM; - aim_addtlvtochain8((aim_tlvlist_t**)&cur->data, 0x00ca, permdeny); - aim_addtlvtochain32((aim_tlvlist_t**)&cur->data, 0x00cb, vismask); - aim_ssi_addmoddel(sess, conn, &cur, 1, AIM_CB_SSI_ADD); - } - - /* Begin sending SSI SNACs */ - aim_ssi_dispatch(sess, conn); - - return 0; -} - -/** - * Stores your setting for whether you should show up as idle or not. - * - * @param sess The oscar session. - * @param conn The bos connection for this session. - * @param presence I think it's a bitmask, but I only know what one of the bits is: - * 0x00000400 - Allow others to see your idle time - * @return Return 0 if no errors, otherwise return the error number. - */ -int aim_ssi_setpresence(aim_session_t *sess, aim_conn_t *conn, guint32 presence) { - struct aim_ssi_item *cur; //, *tmp; -// guint16 j; - aim_tlv_t *tlv; - - if (!sess || !conn) - return -EINVAL; - - /* Look up the item */ - cur = aim_ssi_itemlist_finditem(sess->ssi.items, NULL, NULL, AIM_SSI_TYPE_PRESENCEPREFS); - - if (cur) { - /* The item exists */ - if (cur->data && (tlv = aim_gettlv(cur->data, 0x00c9, 1))) { - /* Just change the value of the x00c9 TLV */ - if (tlv->length != 4) { - tlv->length = 4; - g_free(tlv->value); - tlv->value = (guint8 *)g_malloc(4*sizeof(guint8)); - } - aimutil_put32(tlv->value, presence); - } else { - /* Need to add the x00c9 TLV to the TLV chain */ - aim_addtlvtochain32((aim_tlvlist_t**)&cur->data, 0x00c9, presence); - } - - /* Send the mod item SNAC */ - aim_ssi_addmoddel(sess, conn, &cur, 1, AIM_CB_SSI_MOD); - } else { - /* Need to add the item */ - if (!(cur = aim_ssi_itemlist_add(&sess->ssi.items, NULL, NULL, AIM_SSI_TYPE_PRESENCEPREFS))) - return -ENOMEM; - aim_addtlvtochain32((aim_tlvlist_t**)&cur->data, 0x00c9, presence); - aim_ssi_addmoddel(sess, conn, &cur, 1, AIM_CB_SSI_ADD); - } - - /* Begin sending SSI SNACs */ - aim_ssi_dispatch(sess, conn); - - return 0; -} - /* * Request SSI Rights. */ @@ -1142,37 +861,6 @@ static int parserights(aim_session_t *sess, aim_module_t *mod, aim_frame_t *rx, return ret; } -/* - * Request SSI Data. - * - * The data will only be sent if it is newer than the posted local - * timestamp and revision. - * - * Note that the client should never increment the revision, only the server. - * - */ -int aim_ssi_reqdata(aim_session_t *sess, aim_conn_t *conn, time_t localstamp, guint16 localrev) -{ - aim_frame_t *fr; - aim_snacid_t snacid; - - if (!sess || !conn) - return -EINVAL; - - if (!(fr = aim_tx_new(sess, conn, AIM_FRAMETYPE_FLAP, 0x02, 10+4+2))) - return -ENOMEM; - - snacid = aim_cachesnac(sess, AIM_CB_FAM_SSI, AIM_CB_SSI_REQLIST, 0x0000, NULL, 0); - - aim_putsnac(&fr->data, AIM_CB_FAM_SSI, AIM_CB_SSI_REQLIST, 0x0000, snacid); - aimbs_put32(&fr->data, localstamp); - aimbs_put16(&fr->data, localrev); - - aim_tx_enqueue(sess, fr); - - return 0; -} - int aim_ssi_reqalldata(aim_session_t *sess, aim_conn_t *conn) { aim_frame_t *fr; diff --git a/protocols/oscar/ssi.h b/protocols/oscar/ssi.h index 94b18d60..60d9faa5 100644 --- a/protocols/oscar/ssi.h +++ b/protocols/oscar/ssi.h @@ -44,7 +44,6 @@ struct aim_ssi_item { /* These build the actual SNACs and queue them to be sent */ int aim_ssi_reqrights(aim_session_t *sess, aim_conn_t *conn); -int aim_ssi_reqdata(aim_session_t *sess, aim_conn_t *conn, time_t localstamp, guint16 localrev); int aim_ssi_reqalldata(aim_session_t *sess, aim_conn_t *conn); int aim_ssi_enable(aim_session_t *sess, aim_conn_t *conn); int aim_ssi_addmoddel(aim_session_t *sess, aim_conn_t *conn, struct aim_ssi_item **items, unsigned int num, guint16 subtype); @@ -56,10 +55,8 @@ struct aim_ssi_item *aim_ssi_itemlist_find(struct aim_ssi_item *list, guint16 gi struct aim_ssi_item *aim_ssi_itemlist_finditem(struct aim_ssi_item *list, char *gn, char *sn, guint16 type); struct aim_ssi_item *aim_ssi_itemlist_findparent(struct aim_ssi_item *list, char *sn); int aim_ssi_getpermdeny(struct aim_ssi_item *list); -guint32 aim_ssi_getpresence(struct aim_ssi_item *list); /* Send packets */ -int aim_ssi_cleanlist(aim_session_t *sess, aim_conn_t *conn); int aim_ssi_addbuddies(aim_session_t *sess, aim_conn_t *conn, char *gn, char **sn, unsigned int num, unsigned int flags); int aim_ssi_addmastergroup(aim_session_t *sess, aim_conn_t *conn); int aim_ssi_addgroups(aim_session_t *sess, aim_conn_t *conn, char **gn, unsigned int num); @@ -68,10 +65,7 @@ int aim_ssi_movebuddy(aim_session_t *sess, aim_conn_t *conn, char *oldgn, char * int aim_ssi_delbuddies(aim_session_t *sess, aim_conn_t *conn, char *gn, char **sn, unsigned int num); int aim_ssi_delmastergroup(aim_session_t *sess, aim_conn_t *conn); int aim_ssi_delgroups(aim_session_t *sess, aim_conn_t *conn, char **gn, unsigned int num); -int aim_ssi_deletelist(aim_session_t *sess, aim_conn_t *conn); int aim_ssi_delpord(aim_session_t *sess, aim_conn_t *conn, char **sn, unsigned int num, guint16 type); -int aim_ssi_setpermdeny(aim_session_t *sess, aim_conn_t *conn, guint8 permdeny, guint32 vismask); -int aim_ssi_setpresence(aim_session_t *sess, aim_conn_t *conn, guint32 presence); int aim_ssi_auth_request(aim_session_t *sess, aim_conn_t *conn, char *uin, char *reason); int aim_ssi_auth_reply(aim_session_t *sess, aim_conn_t *conn, char *uin, int yesno, char *reason); diff --git a/protocols/oscar/tlv.c b/protocols/oscar/tlv.c index 9d827caf..89ef6f26 100644 --- a/protocols/oscar/tlv.c +++ b/protocols/oscar/tlv.c @@ -222,39 +222,6 @@ int aim_addtlvtochain32(aim_tlvlist_t **list, const guint16 t, const guint32 v) } /** - * aim_addtlvtochain_availmsg - Add a ICQ availability message to a TLV chain - * @list: Destination chain - * @type: TLV type to add - * @val: Value to add - * - * Adds a available message to a TLV chain - * - */ -int aim_addtlvtochain_availmsg(aim_tlvlist_t **list, const guint16 t, const char *msg) -{ - int ret; - guint16 unknown_data = 0x00; - guint8 add_data_len = 4; - guint16 msg_len = strlen(msg); - guint8 total_len = strlen(msg) + add_data_len; - guint8 *data, *cur; - guint8 alloc_len = msg_len + (3*sizeof(guint16)) + (2*sizeof(guint8)); - data = cur = g_malloc(alloc_len); - - cur += aimutil_put16(cur, 2); - cur += aimutil_put8(cur, add_data_len); - cur += aimutil_put8(cur, total_len); - cur += aimutil_put16(cur, msg_len); - cur += aimutil_putstr(cur, msg, msg_len); - cur += aimutil_put16(cur, unknown_data); - - ret = aim_addtlvtochain_raw(list, t, alloc_len, data); - g_free(data); - - return ret; -} - -/** * aim_addtlvtochain_caps - Add a capability block to a TLV chain * @list: Destination chain * @type: TLV type to add @@ -279,18 +246,6 @@ int aim_addtlvtochain_caps(aim_tlvlist_t **list, const guint16 t, const guint32 return aim_addtlvtochain_raw(list, t, aim_bstream_curpos(&bs), buf); } -int aim_addtlvtochain_userinfo(aim_tlvlist_t **list, guint16 type, aim_userinfo_t *ui) -{ - guint8 buf[1024]; /* bleh */ - aim_bstream_t bs; - - aim_bstream_init(&bs, buf, sizeof(buf)); - - aim_putuserinfo(&bs, ui); - - return aim_addtlvtochain_raw(list, type, aim_bstream_curpos(&bs), buf); -} - /** * aim_addtlvtochain_noval - Add a blank TLV to a TLV chain * @list: Destination chain diff --git a/protocols/yahoo/Makefile b/protocols/yahoo/Makefile index b501e030..8ac73e49 100644 --- a/protocols/yahoo/Makefile +++ b/protocols/yahoo/Makefile @@ -12,7 +12,7 @@ _SRCDIR_ := $(_SRCDIR_)protocols/yahoo/ endif # [SH] Program variables -objects = yahoo.o crypt.o libyahoo2.o yahoo_fn.o yahoo_httplib.o yahoo_util.o +objects = yahoo.o libyahoo2.o yahoo_httplib.o yahoo_util.o CFLAGS += -DSTDC_HEADERS -DHAVE_STRING_H -DHAVE_STRCHR -DHAVE_MEMCPY -DHAVE_GLIB LFLAGS += -r diff --git a/protocols/yahoo/crypt.c b/protocols/yahoo/crypt.c deleted file mode 100644 index 5122e3af..00000000 --- a/protocols/yahoo/crypt.c +++ /dev/null @@ -1,203 +0,0 @@ -/* One way encryption based on MD5 sum. - Copyright (C) 1996, 1997, 1999, 2000 Free Software Foundation, Inc. - This file is part of the GNU C Library. - Contributed by Ulrich Drepper <drepper@cygnus.com>, 1996. - - The GNU C Library is free software; you can redistribute it and/or - modify it under the terms of the GNU Lesser General Public - License as published by the Free Software Foundation; either - version 2.1 of the License, or (at your option) any later version. - - The GNU C Library 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 - Lesser General Public License for more details. - - You should have received a copy of the GNU Lesser General Public - License along with the GNU C Library; if not, write to the Free - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA - 02111-1307 USA. */ - -/* warmenhoven took this file and made it work with the md5.[ch] we - * already had. isn't that lovely. people should just use linux or - * freebsd, crypt works properly on those systems. i hate solaris */ - -#if HAVE_STRING_H -# include <string.h> -#elif HAVE_STRINGS_H -# include <strings.h> -#endif - -#include <stdlib.h> -#include "yahoo_util.h" - -#include "md5.h" - -/* Define our magic string to mark salt for MD5 "encryption" - replacement. This is meant to be the same as for other MD5 based - encryption implementations. */ -static const char md5_salt_prefix[] = "$1$"; - -/* Table with characters for base64 transformation. */ -static const char b64t[64] = -"./0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz"; - -char *yahoo_crypt(char *key, char *salt) -{ - char *buffer = NULL; - int buflen = 0; - int needed = 3 + strlen (salt) + 1 + 26 + 1; - - md5_byte_t alt_result[16]; - md5_state_t ctx; - md5_state_t alt_ctx; - size_t salt_len; - size_t key_len; - size_t cnt; - char *cp; - - if (buflen < needed) { - buflen = needed; - if ((buffer = realloc(buffer, buflen)) == NULL) - return NULL; - } - - /* Find beginning of salt string. The prefix should normally always - be present. Just in case it is not. */ - if (strncmp (md5_salt_prefix, salt, sizeof (md5_salt_prefix) - 1) == 0) - /* Skip salt prefix. */ - salt += sizeof (md5_salt_prefix) - 1; - - salt_len = MIN (strcspn (salt, "$"), 8); - key_len = strlen (key); - - /* Prepare for the real work. */ - md5_init(&ctx); - - /* Add the key string. */ - md5_append(&ctx, (md5_byte_t *)key, key_len); - - /* Because the SALT argument need not always have the salt prefix we - add it separately. */ - md5_append(&ctx, (md5_byte_t *)md5_salt_prefix, sizeof (md5_salt_prefix) - 1); - - /* The last part is the salt string. This must be at most 8 - characters and it ends at the first `$' character (for - compatibility which existing solutions). */ - md5_append(&ctx, (md5_byte_t *)salt, salt_len); - - /* Compute alternate MD5 sum with input KEY, SALT, and KEY. The - final result will be added to the first context. */ - md5_init(&alt_ctx); - - /* Add key. */ - md5_append(&alt_ctx, (md5_byte_t *)key, key_len); - - /* Add salt. */ - md5_append(&alt_ctx, (md5_byte_t *)salt, salt_len); - - /* Add key again. */ - md5_append(&alt_ctx, (md5_byte_t *)key, key_len); - - /* Now get result of this (16 bytes) and add it to the other - context. */ - md5_finish(&alt_ctx, alt_result); - - /* Add for any character in the key one byte of the alternate sum. */ - for (cnt = key_len; cnt > 16; cnt -= 16) - md5_append(&ctx, alt_result, 16); - md5_append(&ctx, alt_result, cnt); - - /* For the following code we need a NUL byte. */ - alt_result[0] = '\0'; - - /* The original implementation now does something weird: for every 1 - bit in the key the first 0 is added to the buffer, for every 0 - bit the first character of the key. This does not seem to be - what was intended but we have to follow this to be compatible. */ - for (cnt = key_len; cnt > 0; cnt >>= 1) - md5_append(&ctx, (cnt & 1) != 0 ? alt_result : (md5_byte_t *)key, 1); - - /* Create intermediate result. */ - md5_finish(&ctx, alt_result); - - /* Now comes another weirdness. In fear of password crackers here - comes a quite long loop which just processes the output of the - previous round again. We cannot ignore this here. */ - for (cnt = 0; cnt < 1000; ++cnt) { - /* New context. */ - md5_init(&ctx); - - /* Add key or last result. */ - if ((cnt & 1) != 0) - md5_append(&ctx, (md5_byte_t *)key, key_len); - else - md5_append(&ctx, alt_result, 16); - - /* Add salt for numbers not divisible by 3. */ - if (cnt % 3 != 0) - md5_append(&ctx, (md5_byte_t *)salt, salt_len); - - /* Add key for numbers not divisible by 7. */ - if (cnt % 7 != 0) - md5_append(&ctx, (md5_byte_t *)key, key_len); - - /* Add key or last result. */ - if ((cnt & 1) != 0) - md5_append(&ctx, alt_result, 16); - else - md5_append(&ctx, (md5_byte_t *)key, key_len); - - /* Create intermediate result. */ - md5_finish(&ctx, alt_result); - } - - /* Now we can construct the result string. It consists of three - parts. */ - - strncpy(buffer, md5_salt_prefix, MAX (0, buflen)); - cp = buffer + strlen(buffer); - buflen -= sizeof (md5_salt_prefix); - - strncpy(cp, salt, MIN ((size_t) buflen, salt_len)); - cp = cp + strlen(cp); - buflen -= MIN ((size_t) buflen, salt_len); - - if (buflen > 0) { - *cp++ = '$'; - --buflen; - } - -#define b64_from_24bit(B2, B1, B0, N) \ - do { \ - unsigned int w = ((B2) << 16) | ((B1) << 8) | (B0); \ - int n = (N); \ - while (n-- > 0 && buflen > 0) { \ - *cp++ = b64t[w & 0x3f]; \ - --buflen; \ - w >>= 6; \ - }\ - } while (0) - - b64_from_24bit (alt_result[0], alt_result[6], alt_result[12], 4); - b64_from_24bit (alt_result[1], alt_result[7], alt_result[13], 4); - b64_from_24bit (alt_result[2], alt_result[8], alt_result[14], 4); - b64_from_24bit (alt_result[3], alt_result[9], alt_result[15], 4); - b64_from_24bit (alt_result[4], alt_result[10], alt_result[5], 4); - b64_from_24bit (0, 0, alt_result[11], 2); - if (buflen <= 0) { - FREE(buffer); - } else - *cp = '\0'; /* Terminate the string. */ - - /* Clear the buffer for the intermediate result so that people - attaching to processes or reading core dumps cannot get any - information. We do it in this way to clear correct_words[] - inside the MD5 implementation as well. */ - md5_init(&ctx); - md5_finish(&ctx, alt_result); - memset (&ctx, '\0', sizeof (ctx)); - memset (&alt_ctx, '\0', sizeof (alt_ctx)); - - return buffer; -} diff --git a/protocols/yahoo/libyahoo2.c b/protocols/yahoo/libyahoo2.c index ca2a161e..da427279 100644 --- a/protocols/yahoo/libyahoo2.c +++ b/protocols/yahoo/libyahoo2.c @@ -82,7 +82,6 @@ char *strchr (), *strrchr (); #include "yahoo2.h" #include "yahoo_httplib.h" #include "yahoo_util.h" -#include "yahoo_fn.h" #include "yahoo2_callbacks.h" #include "yahoo_debug.h" @@ -121,11 +120,6 @@ int yahoo_log_message(char *fmt, ...) return YAHOO_CALLBACK(ext_yahoo_log) ("%s", out); } -int yahoo_connect(char *host, int port) -{ - return YAHOO_CALLBACK(ext_yahoo_connect) (host, port); -} - static enum yahoo_log_level log_level = YAHOO_LOG_NONE; enum yahoo_log_level yahoo_get_log_level() @@ -374,6 +368,7 @@ static struct yahoo_input_data * find_input_by_id(int id) } */ +#if 0 static struct yahoo_input_data *find_input_by_id_and_webcam_user(int id, const char *who) { @@ -390,6 +385,7 @@ static struct yahoo_input_data *find_input_by_id_and_webcam_user(int id, } return NULL; } +#endif static struct yahoo_input_data *find_input_by_id_and_type(int id, enum yahoo_connection_type type) @@ -430,8 +426,6 @@ static int count_inputs_with_id(int id) return c; } -extern char *yahoo_crypt(char *, char *); - /* Free a buddy list */ static void yahoo_free_buddies(YList *list) { @@ -2642,6 +2636,7 @@ static struct yahoo_packet *yahoo_getdata(struct yahoo_input_data *yid) return pkt; } +#if 0 static struct yab *yahoo_yab_read(unsigned char *d, int len) { char *st, *en; @@ -2792,6 +2787,7 @@ static struct yab *yahoo_getyab(struct yahoo_input_data *yid) return yab; } +#endif static char *yahoo_getwebcam_master(struct yahoo_input_data *yid) { @@ -3099,6 +3095,7 @@ static void yahoo_process_chatcat_connection(struct yahoo_input_data *yid, } } +#if 0 static void yahoo_process_yab_connection(struct yahoo_input_data *yid, int over) { struct yahoo_data *yd = yid->yd; @@ -3158,6 +3155,7 @@ static void yahoo_process_yab_connection(struct yahoo_input_data *yid, int over) YAHOO_CALLBACK(ext_yahoo_got_buddies) (yd->client_id, yd->buddies); } +#endif static void yahoo_process_search_connection(struct yahoo_input_data *yid, int over) @@ -3413,7 +3411,7 @@ static void yahoo_process_webcam_connection(struct yahoo_input_data *yid, static void (*yahoo_process_connection[]) (struct yahoo_input_data *, int over) = { yahoo_process_pager_connection, yahoo_process_ft_connection, - yahoo_process_yab_connection, + NULL, /*yahoo_process_yab_connection, */ yahoo_process_webcam_master_connection, yahoo_process_webcam_connection, yahoo_process_chatcat_connection, @@ -3577,10 +3575,12 @@ void *yahoo_get_fd(int id) return yid->fd; } +#if 0 void yahoo_send_buzz(int id, const char *from, const char *who) { yahoo_send_im(id, from, who, "<ding>", 1, 0); } +#endif void yahoo_send_im(int id, const char *from, const char *who, const char *what, int utf8, int picture) @@ -3722,6 +3722,7 @@ void yahoo_logoff(int id) } +#if 0 void yahoo_get_list(int id) { struct yahoo_input_data *yid = @@ -3741,6 +3742,7 @@ void yahoo_get_list(int id) yahoo_packet_free(pkt); } } +#endif static void _yahoo_http_connected(int id, void *fd, int error, void *data) { @@ -3757,6 +3759,7 @@ static void _yahoo_http_connected(int id, void *fd, int error, void *data) YAHOO_INPUT_READ, yid); } +#if 0 /* FIXME Get address book from address.yahoo.com instead */ void yahoo_get_yab(int id) { @@ -3897,6 +3900,7 @@ void yahoo_refresh(int id) yahoo_packet_free(pkt); } } +#endif void yahoo_keepalive(int id) { @@ -3914,6 +3918,7 @@ void yahoo_keepalive(int id) yahoo_packet_free(pkt); } +#if 0 void yahoo_chat_keepalive(int id) { struct yahoo_input_data *yid = @@ -3931,6 +3936,7 @@ void yahoo_chat_keepalive(int id) yahoo_send_packet(yid, pkt, 0); yahoo_packet_free(pkt); } +#endif void yahoo_add_buddy(int id, const char *who, const char *group, const char *msg) @@ -4023,6 +4029,7 @@ void yahoo_confirm_buddy(int id, const char *who, int reject, const char *msg) yahoo_packet_free(pkt); } +#if 0 void yahoo_ignore_buddy(int id, const char *who, int unignore) { struct yahoo_input_data *yid = @@ -4069,6 +4076,7 @@ void yahoo_stealth_buddy(int id, const char *who, int unstealth) yahoo_send_packet(yid, pkt, 0); yahoo_packet_free(pkt); } +#endif void yahoo_change_buddy_group(int id, const char *who, const char *old_group, const char *new_group) @@ -4097,6 +4105,7 @@ void yahoo_change_buddy_group(int id, const char *who, const char *old_group, yahoo_packet_free(pkt); } +#if 0 void yahoo_group_rename(int id, const char *old_group, const char *new_group) { struct yahoo_input_data *yid = @@ -4148,6 +4157,7 @@ void yahoo_conference_addinvite(int id, const char *from, const char *who, yahoo_packet_free(pkt); } +#endif void yahoo_conference_invite(int id, const char *from, YList *who, const char *room, const char *msg) @@ -4289,6 +4299,7 @@ void yahoo_conference_message(int id, const char *from, YList *who, yahoo_packet_free(pkt); } +#if 0 void yahoo_get_chatrooms(int id, int chatroomid) { struct yahoo_data *yd = find_conn_by_id(id); @@ -4731,6 +4742,7 @@ void yahoo_send_picture(int id, const char *name, unsigned long size, { /* Not Implemented */ } +#endif /* File Transfer */ static YList *active_file_transfers = NULL; @@ -4758,6 +4770,7 @@ struct send_file_data { void *data; }; +#if 0 static char *yahoo_get_random(void) { int i = 0; @@ -4787,6 +4800,7 @@ static char *yahoo_get_random(void) return strdup(out); } +#endif static int _are_same_id(const void *sfd1, const void *id) { @@ -5167,6 +5181,7 @@ static void yahoo_process_filetransfer(struct yahoo_input_data *yid, } } +#if 0 void yahoo_send_file(int id, const char *who, const char *msg, const char *name, unsigned long size, yahoo_get_fd_callback callback, void *data) @@ -5245,6 +5260,7 @@ void yahoo_send_file_transfer_response(int client_id, int response, char *id, vo if(response == YAHOO_FILE_TRANSFER_REJECT) yahoo_remove_active_transfer(sfd); } +#endif static void yahoo_process_ft_connection(struct yahoo_input_data *yid, int over) { @@ -5358,6 +5374,7 @@ static void yahoo_process_ft_connection(struct yahoo_input_data *yid, int over) /* End File Transfer */ +#if 0 enum yahoo_status yahoo_current_status(int id) { struct yahoo_data *yd = find_conn_by_id(id); @@ -5407,6 +5424,7 @@ const char *yahoo_get_cookie(int id, const char *which) return yd->login_cookie; return NULL; } +#endif const char *yahoo_get_profile_url(void) { diff --git a/protocols/yahoo/yahoo.c b/protocols/yahoo/yahoo.c index 8b3b0c05..608e124b 100644 --- a/protocols/yahoo/yahoo.c +++ b/protocols/yahoo/yahoo.c @@ -569,10 +569,6 @@ void ext_yahoo_got_buddies( int id, YList *buds ) } } -void ext_yahoo_got_ignore( int id, YList *igns ) -{ -} - void ext_yahoo_got_identities( int id, YList *ids ) { } @@ -813,13 +809,6 @@ void ext_yahoo_got_buddy_change_group( int id, const char *me, const char *who, imcb_add_buddy( ic, who, new_group ); } -/* Because we don't want asynchronous connects in BitlBee, and because - libyahoo doesn't seem to use this one anyway, this one is now defunct. */ -int ext_yahoo_connect(const char *host, int port) -{ - return -1; -} - static void byahoo_accept_conf( void *data ) { struct byahoo_conf_invitation *inv = data; diff --git a/protocols/yahoo/yahoo2.h b/protocols/yahoo/yahoo2.h index 589aaa5a..b9e6665b 100644 --- a/protocols/yahoo/yahoo2.h +++ b/protocols/yahoo/yahoo2.h @@ -120,7 +120,7 @@ extern "C" { /* utf8 is whether msg is a utf8 string or not. */ void yahoo_send_im(int id, const char *from, const char *who, const char *msg, int utf8, int picture); - void yahoo_send_buzz(int id, const char *from, const char *who); +// void yahoo_send_buzz(int id, const char *from, const char *who); /* if type is true, send typing notice, else send stopped typing notice */ void yahoo_send_typing(int id, const char *from, const char *who, int typ); diff --git a/protocols/yahoo/yahoo2_callbacks.h b/protocols/yahoo/yahoo2_callbacks.h index 0dccf188..0a3aab46 100644 --- a/protocols/yahoo/yahoo2_callbacks.h +++ b/protocols/yahoo/yahoo2_callbacks.h @@ -112,7 +112,7 @@ struct yahoo_callbacks { * id - the id that identifies the server connection * igns - the ignore list */ - void YAHOO_CALLBACK_TYPE(ext_yahoo_got_ignore) (int id, YList *igns); +// void YAHOO_CALLBACK_TYPE(ext_yahoo_got_ignore) (int id, YList *igns); /* * Name: ext_yahoo_got_identities @@ -677,7 +677,7 @@ struct yahoo_callbacks { * Returns: * a unix file descriptor to the socket */ - int YAHOO_CALLBACK_TYPE(ext_yahoo_connect) (const char *host, int port); +// int YAHOO_CALLBACK_TYPE(ext_yahoo_connect) (const char *host, int port); /* * Name: ext_yahoo_connect_async diff --git a/protocols/yahoo/yahoo_fn.c b/protocols/yahoo/yahoo_fn.c deleted file mode 100644 index 9544999d..00000000 --- a/protocols/yahoo/yahoo_fn.c +++ /dev/null @@ -1,4622 +0,0 @@ -/* - * libyahoo2 - originally from gaim patches by Amatus - * - * Copyright (C) 2003-2004 - * - * Some code copyright (C) 1998-1999, Mark Spencer <markster@marko.net> - * libfaim code copyright 1998, 1999 Adam Fritzler <afritz@auk.cx> - * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 2 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program; if not, write to the Free Software - * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA - * - */ - -#include "yahoo_fn.h" - -static const unsigned char table_0[256] = { - 0x5A, 0x41, 0x11, 0x77, 0x29, 0x9C, 0x31, 0xAD, - 0x4A, 0x32, 0x1A, 0x6D, 0x56, 0x9F, 0x39, 0xA6, - 0x0C, 0xE8, 0x49, 0x40, 0xA4, 0x21, 0xE9, 0x01, - 0x91, 0x86, 0x2F, 0xB9, 0xED, 0x80, 0x51, 0xAB, - 0x7F, 0x92, 0xF2, 0x73, 0xCD, 0xD9, 0x75, 0x2A, - 0x70, 0x34, 0x35, 0x8D, 0xA8, 0x72, 0x7D, 0x9B, - 0x2E, 0xC5, 0x2D, 0x76, 0x1E, 0xBB, 0xE7, 0x37, - 0xBA, 0xB7, 0xB2, 0x03, 0x20, 0x17, 0x8A, 0x07, - 0xD6, 0x96, 0x13, 0x95, 0xE5, 0xF1, 0x18, 0x3B, - 0xA5, 0x62, 0x33, 0xC1, 0x44, 0x3D, 0x6C, 0xA7, - 0xBF, 0x1C, 0x60, 0xFF, 0x5B, 0xF5, 0x8E, 0xE6, - 0x5C, 0xCC, 0xF7, 0x69, 0x15, 0x0F, 0x0B, 0xBD, - 0x12, 0x9D, 0xB3, 0x65, 0x53, 0xB1, 0x14, 0xF4, - 0x19, 0x3E, 0xB6, 0x45, 0xCB, 0xA2, 0x7A, 0xD3, - 0xF8, 0xD1, 0x61, 0xEE, 0xBC, 0xC6, 0xB0, 0x5D, - 0x4B, 0x09, 0x26, 0xE1, 0x1D, 0x6E, 0xC3, 0xFB, - 0x68, 0x4C, 0x42, 0x52, 0x5F, 0xDE, 0xFD, 0xEF, - 0x81, 0x04, 0x6F, 0xE0, 0xF0, 0x1F, 0x0D, 0x7C, - 0x58, 0x4F, 0x1B, 0x30, 0xCF, 0x9A, 0x2B, 0x05, - 0xF6, 0x3F, 0x78, 0xAC, 0xD8, 0xEC, 0xE2, 0x25, - 0x93, 0xDA, 0x84, 0x8C, 0x4E, 0xD5, 0x38, 0x0A, - 0x06, 0x7E, 0xD4, 0x59, 0x98, 0xE3, 0x36, 0xC2, - 0xD2, 0xA3, 0x10, 0x79, 0xFA, 0xC9, 0x16, 0x27, - 0x66, 0x89, 0xFE, 0x57, 0xF3, 0x83, 0xB8, 0x28, - 0x3C, 0xC7, 0xCE, 0x71, 0xC8, 0xDB, 0x22, 0xE4, - 0xDD, 0xDF, 0x02, 0x8F, 0x5E, 0xEB, 0x48, 0x2C, - 0x08, 0xC4, 0x43, 0xEA, 0x50, 0x55, 0x90, 0x54, - 0x87, 0xCA, 0x00, 0x24, 0x6B, 0x85, 0x97, 0xD7, - 0xDC, 0x6A, 0x67, 0xD0, 0x88, 0xA1, 0x9E, 0xC0, - 0x46, 0xAE, 0x64, 0x74, 0x4D, 0xA0, 0x99, 0xB5, - 0x0E, 0x8B, 0xAA, 0x3A, 0xB4, 0xFC, 0xA9, 0x94, - 0x7B, 0xBE, 0xF9, 0xAF, 0x82, 0x63, 0x47, 0x23 }; - -static const unsigned char table_1[256] = { - 0x08, 0xCB, 0x54, 0xCF, 0x97, 0x53, 0x59, 0xF1, - 0x66, 0xEC, 0xDB, 0x1B, 0xB1, 0xE2, 0x36, 0xEB, - 0xB3, 0x8F, 0x71, 0xA8, 0x90, 0x7D, 0xDA, 0xDC, - 0x2C, 0x2F, 0xE8, 0x6A, 0x73, 0x37, 0xAE, 0xCC, - 0xA1, 0x16, 0xE6, 0xFC, 0x9C, 0xA9, 0x2A, 0x3F, - 0x58, 0xFD, 0x56, 0x4C, 0xA5, 0xF2, 0x33, 0x99, - 0x1A, 0xB7, 0xFE, 0xA6, 0x1E, 0x32, 0x9E, 0x48, - 0x03, 0x4A, 0x78, 0xEE, 0xCA, 0xC3, 0x88, 0x7A, - 0xAC, 0x23, 0xAA, 0xBD, 0xDE, 0xD3, 0x67, 0x43, - 0xFF, 0x64, 0x8A, 0xF9, 0x04, 0xD0, 0x7B, 0xC2, - 0xBC, 0xF3, 0x89, 0x0E, 0xDD, 0xAB, 0x9D, 0x84, - 0x5A, 0x62, 0x7F, 0x6D, 0x82, 0x68, 0xA3, 0xED, - 0x2E, 0x07, 0x41, 0xEF, 0x2D, 0x70, 0x4F, 0x69, - 0x8E, 0xE7, 0x0F, 0x11, 0x19, 0xAF, 0x31, 0xFB, - 0x8D, 0x4B, 0x5F, 0x96, 0x75, 0x42, 0x6C, 0x46, - 0xE4, 0x55, 0xD6, 0x3B, 0xE1, 0xD1, 0xB0, 0xB5, - 0x45, 0x29, 0xC0, 0x94, 0x9F, 0xD4, 0x15, 0x17, - 0x3C, 0x47, 0xC8, 0xD9, 0xC6, 0x76, 0xB9, 0x02, - 0xE0, 0xC9, 0xB2, 0x01, 0xC1, 0x5D, 0x4E, 0x14, - 0xF4, 0xAD, 0xB6, 0x00, 0x72, 0xF0, 0x49, 0x0D, - 0xD8, 0x5E, 0x6F, 0x2B, 0x8C, 0x51, 0x83, 0xC5, - 0x0A, 0x85, 0xE5, 0x38, 0x7E, 0x26, 0xEA, 0x22, - 0x6B, 0x06, 0xD5, 0x8B, 0xBF, 0xC7, 0x35, 0x1D, - 0xF6, 0x24, 0x28, 0xCE, 0x9B, 0x77, 0x20, 0x60, - 0xF5, 0x87, 0x3D, 0x65, 0x86, 0x0C, 0xDF, 0xBA, - 0x12, 0xA4, 0x3A, 0x34, 0xD7, 0xA0, 0xF8, 0x63, - 0x52, 0x27, 0xB8, 0x18, 0xA7, 0x13, 0x91, 0x09, - 0x93, 0x5C, 0x10, 0x9A, 0xB4, 0xE9, 0x44, 0xC4, - 0x21, 0x57, 0x1C, 0x0B, 0xA2, 0x74, 0x4D, 0xBE, - 0xD2, 0x1F, 0xCD, 0xE3, 0x6E, 0x7C, 0x40, 0x50, - 0x39, 0x80, 0x98, 0xFA, 0x25, 0x92, 0x30, 0x5B, - 0x05, 0x95, 0xBB, 0x79, 0x61, 0x3E, 0x81, 0xF7 }; - -static const unsigned char table_2[32] = { - 0x19, 0x05, 0x09, 0x1C, 0x0B, 0x1A, 0x12, 0x03, - 0x06, 0x04, 0x0D, 0x1D, 0x15, 0x0E, 0x1B, 0x18, - 0x00, 0x07, 0x08, 0x02, 0x13, 0x1F, 0x0C, 0x1E, - 0x16, 0x0A, 0x10, 0x0F, 0x01, 0x14, 0x11, 0x17 }; - -static const unsigned char table_3[256] = { - 0xBC, 0x1B, 0xCC, 0x1E, 0x5B, 0x59, 0x4F, 0xA8, - 0x62, 0xC6, 0xC1, 0xBB, 0x83, 0x2D, 0xA3, 0xA6, - 0x5A, 0xDC, 0xE5, 0x93, 0xFB, 0x5C, 0xD6, 0x2A, - 0x97, 0xC7, 0x1C, 0x73, 0x08, 0x45, 0xD2, 0x89, - 0x4A, 0xD4, 0xCF, 0x0C, 0x1D, 0xD8, 0xCD, 0x26, - 0x8F, 0x11, 0x55, 0x8B, 0xD3, 0x53, 0xCE, 0x00, - 0xB5, 0x3B, 0x2E, 0x39, 0x88, 0x7B, 0x85, 0x46, - 0x54, 0xA5, 0x31, 0x40, 0x3E, 0x0A, 0x4C, 0x68, - 0x70, 0x0F, 0xBA, 0x0E, 0x75, 0x8A, 0xEB, 0x44, - 0x60, 0x6C, 0x05, 0xC9, 0xF0, 0xDD, 0x0D, 0x66, - 0xAB, 0xA1, 0xAD, 0xF2, 0x12, 0x6A, 0xE6, 0x27, - 0xF6, 0x9F, 0xDB, 0xB8, 0xF4, 0x56, 0x5E, 0x2C, - 0xDA, 0xFE, 0x34, 0x86, 0xF5, 0xC2, 0xB0, 0xF1, - 0xCB, 0xF3, 0x78, 0x9B, 0x7F, 0xB4, 0xD7, 0x58, - 0x74, 0x07, 0x72, 0x96, 0x02, 0xCA, 0xAC, 0xE8, - 0x5D, 0xA7, 0x32, 0xBD, 0x81, 0x43, 0x18, 0xF8, - 0x15, 0x0B, 0xE9, 0x76, 0x30, 0xBF, 0x3A, 0x22, - 0x9E, 0xD1, 0x79, 0x37, 0xBE, 0x8C, 0x7A, 0x98, - 0x21, 0x95, 0x10, 0x8D, 0xDF, 0xC0, 0x69, 0xC8, - 0x03, 0x6E, 0x4B, 0x36, 0xFC, 0x6F, 0xA9, 0x48, - 0x63, 0xE1, 0xB9, 0x24, 0x87, 0x13, 0xB2, 0xA4, - 0x84, 0x06, 0x14, 0x61, 0x3D, 0x92, 0xB1, 0x41, - 0xE2, 0x71, 0xAF, 0x16, 0xDE, 0x25, 0x82, 0xD9, - 0x2B, 0x33, 0x51, 0xA2, 0x4E, 0x7D, 0x94, 0xFF, - 0xFD, 0x5F, 0x80, 0xED, 0x64, 0xE7, 0x50, 0x6D, - 0xD0, 0x3C, 0x6B, 0x65, 0x77, 0x17, 0x1A, 0xEC, - 0xD5, 0xAA, 0xF9, 0xC4, 0x9C, 0x35, 0xE3, 0x42, - 0xE4, 0x19, 0x52, 0x67, 0xB7, 0x9D, 0x28, 0xC5, - 0x47, 0x38, 0x91, 0x57, 0xAE, 0x3F, 0x29, 0x9A, - 0x2F, 0xF7, 0x90, 0x04, 0xEE, 0xFA, 0x20, 0xB6, - 0xEA, 0x49, 0x23, 0x4D, 0xB3, 0x8E, 0xC3, 0x1F, - 0x7C, 0xEF, 0xE0, 0x99, 0x09, 0xA0, 0x01, 0x7E }; - -static const unsigned char table_4[32] = { - 0x1F, 0x0B, 0x00, 0x1E, 0x03, 0x0E, 0x15, 0x01, - 0x1A, 0x17, 0x1D, 0x1B, 0x11, 0x0F, 0x0A, 0x12, - 0x13, 0x18, 0x02, 0x04, 0x09, 0x06, 0x0D, 0x07, - 0x08, 0x05, 0x10, 0x19, 0x0C, 0x14, 0x16, 0x1C }; - -static const unsigned char table_5[256] = { - 0x9A, 0xAB, 0x61, 0x28, 0x0A, 0x23, 0xFC, 0xBA, - 0x90, 0x22, 0xB7, 0x62, 0xD9, 0x09, 0x91, 0xF4, - 0x7B, 0x5D, 0x6B, 0x80, 0xAC, 0x9E, 0x21, 0x72, - 0x64, 0x2D, 0xFF, 0x66, 0xEB, 0x5B, 0x05, 0xC8, - 0x1B, 0xD1, 0x55, 0xF5, 0x97, 0x08, 0xAE, 0xC7, - 0x00, 0xDE, 0xE1, 0x78, 0xD8, 0xB6, 0xF0, 0x17, - 0xE4, 0x32, 0xCD, 0x76, 0x07, 0x14, 0x7F, 0x7A, - 0xBF, 0xB4, 0x1D, 0x94, 0x48, 0x75, 0xFA, 0xA7, - 0x99, 0x7E, 0x65, 0x38, 0x29, 0x51, 0xC3, 0x83, - 0x7C, 0x0D, 0xA0, 0xCC, 0xF1, 0xDD, 0xE2, 0x49, - 0xF8, 0xD2, 0x25, 0x54, 0x9B, 0x0E, 0xB9, 0xFE, - 0x67, 0xC4, 0xCE, 0x13, 0xD4, 0xE7, 0xB8, 0x41, - 0x77, 0xDB, 0xA6, 0xB0, 0x11, 0x6A, 0x5E, 0x68, - 0x8D, 0xF9, 0x36, 0xD3, 0xC2, 0x3A, 0xAA, 0x59, - 0x03, 0xE0, 0xE3, 0xF3, 0x42, 0x2C, 0x04, 0x47, - 0xE6, 0x93, 0xCB, 0x6E, 0x20, 0xCA, 0x01, 0xA1, - 0x40, 0x2B, 0x2F, 0x5F, 0x87, 0xD0, 0xEC, 0x88, - 0x27, 0x58, 0xC6, 0x3E, 0xDF, 0x26, 0x5C, 0xE9, - 0x1F, 0x0F, 0x95, 0x1C, 0xFB, 0xA5, 0x12, 0x39, - 0x1E, 0x3C, 0x33, 0x43, 0x56, 0xE8, 0x82, 0xF7, - 0x7D, 0x89, 0xF2, 0xD7, 0x50, 0x92, 0x60, 0x4C, - 0x2A, 0x86, 0x16, 0x6C, 0x37, 0xC0, 0xAD, 0xB3, - 0x24, 0x45, 0xB1, 0xA2, 0x71, 0xA4, 0xA3, 0xED, - 0xC9, 0x5A, 0x4D, 0x84, 0x0C, 0x3F, 0xC5, 0x9D, - 0x63, 0x19, 0x79, 0x57, 0x96, 0x30, 0x74, 0xBB, - 0xDA, 0x1A, 0x9F, 0x44, 0xC1, 0x98, 0xE5, 0x81, - 0xD6, 0x18, 0x8F, 0xFD, 0x8E, 0x06, 0x6F, 0xF6, - 0x2E, 0x3B, 0xB5, 0x85, 0x8A, 0x9C, 0x53, 0x4A, - 0xA9, 0x52, 0x3D, 0x4E, 0xBE, 0xAF, 0xBC, 0xA8, - 0x4F, 0x6D, 0x15, 0x35, 0x8C, 0xBD, 0x34, 0x8B, - 0xDC, 0x0B, 0xCF, 0x31, 0xEA, 0xB2, 0x70, 0x4B, - 0x46, 0x73, 0x69, 0xD5, 0x10, 0xEE, 0x02, 0xEF }; - -static const unsigned char table_6[32] = { - 0x1A, 0x1C, 0x0F, 0x0C, 0x00, 0x02, 0x13, 0x09, - 0x11, 0x05, 0x0D, 0x12, 0x18, 0x0B, 0x04, 0x10, - 0x14, 0x1B, 0x1E, 0x16, 0x07, 0x08, 0x03, 0x17, - 0x19, 0x1F, 0x01, 0x0E, 0x15, 0x06, 0x0A, 0x1D }; - -static const unsigned char table_7[256] = { - 0x52, 0x11, 0x72, 0xD0, 0x76, 0xD7, 0xAE, 0x03, - 0x7F, 0x19, 0xF4, 0xB8, 0xB3, 0x5D, 0xCA, 0x2D, - 0x5C, 0x30, 0x53, 0x1A, 0x57, 0xF6, 0xAD, 0x83, - 0x29, 0x79, 0xD5, 0xF0, 0x0F, 0xC3, 0x8B, 0xD3, - 0x8E, 0x37, 0x01, 0xA6, 0xF1, 0x10, 0x04, 0x71, - 0xCC, 0xC6, 0xE7, 0xC2, 0x85, 0x94, 0xBD, 0x6F, - 0xCB, 0xEA, 0xFC, 0xA1, 0x38, 0x5E, 0x08, 0x2E, - 0x35, 0x42, 0x67, 0xD4, 0x56, 0x6D, 0x7C, 0xE5, - 0x0E, 0x7D, 0x12, 0x65, 0xF5, 0x33, 0x82, 0xC4, - 0x1D, 0xD2, 0x16, 0x58, 0xEC, 0xCD, 0xA8, 0xBF, - 0xAB, 0x07, 0x45, 0x55, 0xB7, 0x6A, 0x70, 0xF2, - 0xBE, 0x05, 0x6B, 0x9D, 0xEB, 0x13, 0x0D, 0x9F, - 0xE8, 0xA7, 0xC8, 0x31, 0x3C, 0xB6, 0x21, 0xC0, - 0x20, 0x60, 0x6C, 0xE2, 0xCE, 0x8C, 0xFD, 0x95, - 0xE3, 0x4A, 0xB5, 0xB2, 0x40, 0xB1, 0xF3, 0x17, - 0xF9, 0x24, 0x06, 0x22, 0x2F, 0x25, 0x93, 0x8A, - 0x2A, 0x7E, 0x28, 0x3D, 0x47, 0xF8, 0x89, 0xA5, - 0x7B, 0x9B, 0xC5, 0x84, 0x59, 0x46, 0x90, 0x74, - 0x69, 0xC7, 0xAA, 0xEE, 0x6E, 0xD6, 0xB0, 0x18, - 0x66, 0xA0, 0x7A, 0x1E, 0xFB, 0xDB, 0x4E, 0x51, - 0x92, 0xE4, 0xE0, 0x3E, 0xB4, 0xD8, 0x23, 0x3B, - 0xC1, 0x5F, 0xFE, 0x98, 0x99, 0x73, 0x09, 0xA9, - 0xA3, 0xDF, 0x14, 0x5A, 0x26, 0x8F, 0x0B, 0xAF, - 0x4C, 0x97, 0x54, 0xE1, 0x63, 0x48, 0xED, 0xBA, - 0xCF, 0xBB, 0x1F, 0xDC, 0xA4, 0xFA, 0x64, 0x75, - 0xDE, 0x81, 0x9A, 0xFF, 0x49, 0x41, 0x27, 0x62, - 0x02, 0x15, 0xD9, 0x86, 0xAC, 0x3F, 0x0C, 0x61, - 0xD1, 0x77, 0x2B, 0x1B, 0x96, 0xDA, 0x68, 0x1C, - 0x44, 0x32, 0xBC, 0xA2, 0x87, 0xF7, 0x91, 0x8D, - 0x80, 0xDD, 0x0A, 0x50, 0x34, 0x4B, 0x00, 0xB9, - 0x36, 0xE6, 0x78, 0x4F, 0xC9, 0xE9, 0x2C, 0x43, - 0x88, 0x9E, 0x9C, 0x5B, 0x4D, 0x3A, 0x39, 0xEF }; - -static const unsigned char table_8[32] = { - 0x13, 0x08, 0x1E, 0x1D, 0x17, 0x16, 0x07, 0x1F, - 0x0E, 0x03, 0x1A, 0x19, 0x01, 0x12, 0x11, 0x10, - 0x09, 0x0C, 0x0F, 0x14, 0x0B, 0x05, 0x00, 0x04, - 0x1C, 0x18, 0x0A, 0x15, 0x02, 0x1B, 0x06, 0x0D }; - -static const unsigned char table_9[256] = { - 0x20, 0x2A, 0xDA, 0xFE, 0x76, 0x0D, 0xED, 0x39, - 0x51, 0x4C, 0x46, 0x9A, 0xF1, 0xB0, 0x10, 0xC7, - 0xD1, 0x6F, 0x18, 0x24, 0xB9, 0x7A, 0x4F, 0x47, - 0xE0, 0x4E, 0x88, 0x09, 0x8A, 0xBA, 0x60, 0xBD, - 0xC2, 0x27, 0x93, 0x7D, 0x94, 0x40, 0xCB, 0x80, - 0xB8, 0x41, 0x84, 0x5D, 0xC1, 0x0F, 0x5E, 0x78, - 0x2B, 0x48, 0x28, 0x29, 0xEE, 0x81, 0x90, 0x86, - 0x50, 0x9C, 0xF3, 0xB2, 0x35, 0x52, 0x0C, 0x9D, - 0xFC, 0x69, 0xD6, 0xA6, 0x06, 0xD7, 0xC6, 0xFF, - 0x1C, 0x14, 0x57, 0x33, 0xE2, 0x1F, 0x83, 0xA8, - 0xF7, 0x99, 0xC5, 0xDC, 0x70, 0x9E, 0xF4, 0x6B, - 0x0A, 0x77, 0x95, 0x4A, 0x2E, 0x53, 0xF2, 0x62, - 0x98, 0xF8, 0x96, 0xDB, 0xE6, 0x32, 0x3C, 0x58, - 0xD5, 0x6D, 0xE7, 0x4B, 0xCE, 0x91, 0x43, 0xD8, - 0xFA, 0xE3, 0x4D, 0xD9, 0x68, 0xDE, 0xEC, 0x01, - 0x08, 0xD3, 0x8F, 0x19, 0xC4, 0xA7, 0x6E, 0x3E, - 0x63, 0x12, 0x72, 0x42, 0x9F, 0xB4, 0x04, 0x1B, - 0x7E, 0x11, 0x17, 0x73, 0xB5, 0x22, 0x56, 0xA1, - 0x89, 0xDD, 0xF5, 0x3F, 0x49, 0x26, 0x8D, 0x15, - 0x85, 0x75, 0x5F, 0x65, 0x82, 0xB6, 0xF6, 0xD2, - 0xA4, 0x55, 0x37, 0xC8, 0xA0, 0xCC, 0x66, 0x5C, - 0xC9, 0x25, 0x36, 0x67, 0x7C, 0xE1, 0xA3, 0xCF, - 0xA9, 0x59, 0x2F, 0xFB, 0xBB, 0x07, 0x87, 0xA2, - 0x44, 0x92, 0x13, 0x00, 0x16, 0x61, 0x38, 0xEB, - 0xAE, 0xD4, 0x1E, 0x64, 0x6A, 0xE4, 0xCA, 0x1D, - 0x6C, 0xDF, 0xAB, 0x5B, 0x03, 0x7B, 0x9B, 0x8C, - 0x5A, 0xFD, 0xC3, 0xB3, 0x0B, 0xAA, 0xAC, 0x8B, - 0xBE, 0xBC, 0x3D, 0x97, 0xCD, 0x05, 0x21, 0x8E, - 0xAD, 0xEA, 0x54, 0x30, 0xAF, 0x02, 0xB1, 0x34, - 0x0E, 0xA5, 0x3B, 0x45, 0x1A, 0x23, 0xE8, 0x7F, - 0xEF, 0xB7, 0x31, 0xD0, 0xBF, 0x3A, 0x79, 0xE5, - 0xF9, 0xF0, 0x2C, 0x74, 0xE9, 0x71, 0xC0, 0x2D }; - -static const unsigned char table_10[32] = { - 0x1D, 0x12, 0x11, 0x0D, 0x1E, 0x19, 0x16, 0x1B, - 0x18, 0x13, 0x07, 0x17, 0x0C, 0x02, 0x00, 0x15, - 0x0E, 0x08, 0x05, 0x01, 0x10, 0x06, 0x04, 0x0F, - 0x1F, 0x1A, 0x0B, 0x09, 0x0A, 0x14, 0x1C, 0x03 }; - -static const unsigned char table_11[256] = { - 0x6B, 0x1D, 0xC6, 0x0A, 0xB7, 0xAC, 0xB2, 0x11, - 0x29, 0xD3, 0xA2, 0x4D, 0xCB, 0x03, 0xEF, 0xA6, - 0xC1, 0x5D, 0x75, 0x48, 0x35, 0x6C, 0xE2, 0x84, - 0xAB, 0xAA, 0xD8, 0x2C, 0x0E, 0x95, 0x25, 0x27, - 0x7D, 0x0B, 0xD0, 0xFB, 0x14, 0xE5, 0xF2, 0x4E, - 0x7F, 0x2A, 0x63, 0x3C, 0xC9, 0xF6, 0xDC, 0x07, - 0x26, 0x55, 0xCF, 0x2B, 0xCD, 0xA7, 0x17, 0xD2, - 0x9A, 0x7B, 0x93, 0x78, 0x9E, 0xE6, 0x2F, 0x49, - 0x1E, 0xFD, 0xF0, 0xFE, 0x7C, 0x33, 0x92, 0xA3, - 0xC8, 0xA0, 0xA9, 0xC4, 0xA1, 0x94, 0x6D, 0x44, - 0x0C, 0x90, 0x3A, 0x8C, 0x8E, 0x85, 0xAF, 0x40, - 0x36, 0xA4, 0xD1, 0xB9, 0x19, 0x6F, 0xF4, 0xBA, - 0x1A, 0x73, 0xD9, 0xB5, 0xB4, 0x7A, 0xF9, 0x83, - 0x58, 0xAD, 0xCE, 0x60, 0x98, 0xDB, 0x1C, 0x1B, - 0x52, 0xB8, 0xF3, 0x96, 0xED, 0xDE, 0xB3, 0xEE, - 0x4F, 0xBD, 0x10, 0xD4, 0x43, 0xEA, 0xE7, 0x37, - 0x12, 0x3D, 0xA8, 0x22, 0x65, 0xEC, 0x5B, 0x08, - 0x9D, 0x0D, 0x5C, 0xB6, 0x8A, 0x79, 0x3F, 0x04, - 0xD6, 0x01, 0xE1, 0xBE, 0xDD, 0x50, 0xFA, 0x41, - 0x13, 0x91, 0xF7, 0xDA, 0x18, 0xB0, 0x45, 0x81, - 0x4C, 0xF5, 0x32, 0x23, 0x56, 0x5A, 0xEB, 0x97, - 0x34, 0x00, 0x77, 0x71, 0x4B, 0x70, 0xD5, 0x31, - 0x72, 0x05, 0xDF, 0xE8, 0x15, 0x3B, 0x54, 0x16, - 0x89, 0xE4, 0xF1, 0xD7, 0x80, 0x82, 0x4A, 0xE3, - 0x39, 0x06, 0x47, 0x28, 0xC2, 0x86, 0x87, 0xB1, - 0x62, 0x74, 0x53, 0x21, 0x67, 0x38, 0x42, 0xCA, - 0x9B, 0xC3, 0x51, 0x99, 0x8B, 0x1F, 0x24, 0x8D, - 0xF8, 0x68, 0x3E, 0x59, 0xBB, 0x61, 0x5F, 0xBC, - 0x09, 0x6E, 0x8F, 0x0F, 0x2D, 0xC0, 0xE0, 0x46, - 0x66, 0x69, 0xA5, 0xE9, 0x30, 0x9C, 0x5E, 0xAE, - 0xBF, 0xC7, 0x20, 0x7E, 0x6A, 0xC5, 0x88, 0xFC, - 0x64, 0x76, 0xFF, 0x9F, 0x2E, 0x02, 0xCC, 0x57 }; - -static const unsigned char table_12[32] = { - 0x14, 0x1B, 0x18, 0x00, 0x1F, 0x15, 0x17, 0x07, - 0x11, 0x1A, 0x0E, 0x13, 0x12, 0x06, 0x01, 0x03, - 0x1C, 0x0C, 0x0B, 0x1D, 0x10, 0x0F, 0x09, 0x19, - 0x0D, 0x1E, 0x04, 0x05, 0x08, 0x16, 0x0A, 0x02 }; - -static const unsigned char table_13[256] = { - 0x37, 0x8A, 0x1B, 0x91, 0xA5, 0x2B, 0x2D, 0x88, - 0x8E, 0xFE, 0x0E, 0xD3, 0xF3, 0xE9, 0x7D, 0xD1, - 0x24, 0xEA, 0xB1, 0x8B, 0x5C, 0xA4, 0x44, 0x7E, - 0x8C, 0x2C, 0x73, 0xD5, 0x50, 0x3E, 0xD7, 0x18, - 0xB9, 0xD6, 0xBA, 0x94, 0x0C, 0xFC, 0xCB, 0xB4, - 0x0D, 0x63, 0x4C, 0xDE, 0x77, 0x16, 0xFD, 0x81, - 0x3C, 0x11, 0x45, 0x36, 0xF6, 0x67, 0x95, 0x6D, - 0x6A, 0x1A, 0xA3, 0xC5, 0x92, 0x10, 0x28, 0x84, - 0x48, 0xA6, 0x23, 0xE3, 0x4B, 0xE1, 0xF5, 0x19, - 0xE0, 0x2E, 0x00, 0x61, 0x74, 0xCC, 0xF7, 0xB0, - 0x68, 0xC8, 0x40, 0x6F, 0x59, 0x52, 0x26, 0x99, - 0xC9, 0xF9, 0xC4, 0x53, 0x9B, 0xEC, 0x03, 0x17, - 0xE2, 0x06, 0x30, 0x7B, 0xBE, 0xCD, 0x1D, 0x3B, - 0xD2, 0x5B, 0x65, 0x21, 0x49, 0xB7, 0x79, 0xCF, - 0x82, 0x86, 0xC7, 0x62, 0xEE, 0x8D, 0xFF, 0xD4, - 0xC3, 0x85, 0xA7, 0xFA, 0xA9, 0x6B, 0xF2, 0x69, - 0x9C, 0x38, 0x78, 0xBD, 0x7F, 0xDD, 0xCE, 0xA1, - 0x33, 0xC2, 0x43, 0xEB, 0xD8, 0xE6, 0x2A, 0xE4, - 0x76, 0x6C, 0xAA, 0x46, 0x05, 0xE7, 0xA0, 0x0A, - 0x71, 0x98, 0x41, 0x5F, 0x0F, 0xEF, 0x51, 0xAD, - 0xF0, 0xED, 0x96, 0x5A, 0x42, 0x3F, 0xBF, 0x6E, - 0xBC, 0x5D, 0xC1, 0x15, 0x70, 0x54, 0x4D, 0x14, - 0xB5, 0xCA, 0x27, 0x80, 0x87, 0x39, 0x60, 0x47, - 0x9D, 0x2F, 0x56, 0x1F, 0xBB, 0x31, 0xF1, 0xE8, - 0xB3, 0x9E, 0x5E, 0x7C, 0xD0, 0xC6, 0xB2, 0x57, - 0x83, 0xAC, 0x09, 0x8F, 0xA2, 0x90, 0x13, 0x25, - 0x01, 0x08, 0x64, 0xB6, 0x02, 0xDB, 0x55, 0x32, - 0xAF, 0x9A, 0xC0, 0x1C, 0x12, 0x29, 0x0B, 0x72, - 0x4F, 0xDA, 0xAB, 0x35, 0xF8, 0x22, 0xD9, 0x4E, - 0x3D, 0x1E, 0xDC, 0x58, 0x20, 0x34, 0xAE, 0x66, - 0x75, 0x93, 0x9F, 0x3A, 0x07, 0xE5, 0x89, 0xDF, - 0x97, 0x4A, 0xB8, 0x7A, 0xF4, 0xFB, 0x04, 0xA8 }; - -static const unsigned char table_14[32] = { - 0x04, 0x14, 0x13, 0x15, 0x1A, 0x1B, 0x0F, 0x16, - 0x02, 0x0D, 0x0C, 0x06, 0x10, 0x17, 0x01, 0x0B, - 0x1E, 0x08, 0x1C, 0x18, 0x19, 0x0A, 0x1F, 0x05, - 0x11, 0x09, 0x1D, 0x07, 0x0E, 0x12, 0x03, 0x00 }; - -static const unsigned char table_15[256] = { - 0x61, 0x48, 0x58, 0x41, 0x7F, 0x88, 0x43, 0x42, - 0xD9, 0x80, 0x81, 0xFE, 0xC6, 0x49, 0xD7, 0x2C, - 0xE6, 0x5B, 0xEE, 0xFF, 0x2A, 0x6F, 0xBF, 0x98, - 0xD6, 0x20, 0xB9, 0xB1, 0x5D, 0x95, 0x72, 0x1E, - 0x82, 0x96, 0xDE, 0xC1, 0x40, 0xD8, 0x70, 0xA3, - 0xD1, 0x1F, 0xF0, 0x9F, 0x2D, 0xDC, 0x3F, 0xF9, - 0x5E, 0x0D, 0x15, 0x2F, 0x67, 0x31, 0x9D, 0x84, - 0x97, 0x0C, 0xF6, 0x79, 0xC2, 0xA7, 0xC0, 0x32, - 0xB3, 0xEB, 0xED, 0x71, 0x30, 0xCC, 0x4B, 0xA0, - 0xF5, 0xC4, 0xCD, 0x27, 0xFA, 0x11, 0x25, 0xDB, - 0x4F, 0xE2, 0x7E, 0xA6, 0xAF, 0x34, 0x69, 0x63, - 0x8F, 0x08, 0x1C, 0x85, 0xF1, 0x57, 0x78, 0xC8, - 0xA2, 0x83, 0xB5, 0x68, 0xF7, 0x64, 0x45, 0x26, - 0x3B, 0x03, 0xAD, 0x3C, 0x50, 0xD5, 0x77, 0xFC, - 0xFB, 0x18, 0xC9, 0xD2, 0x9C, 0xBB, 0xBA, 0x76, - 0x23, 0x55, 0xD3, 0x5A, 0x01, 0xE9, 0x87, 0x07, - 0x19, 0x09, 0x39, 0x8A, 0x91, 0x93, 0x12, 0xDF, - 0x22, 0xA8, 0xCF, 0x4E, 0x4D, 0x65, 0xB0, 0x0F, - 0x13, 0x53, 0x21, 0x8C, 0xE5, 0xB7, 0x0B, 0x0E, - 0x6C, 0x44, 0xCA, 0x7B, 0xC5, 0x6E, 0xCE, 0xE3, - 0x14, 0x29, 0xAC, 0x2E, 0xE7, 0x59, 0xE8, 0x0A, - 0xEA, 0x66, 0x7C, 0x94, 0x6D, 0x05, 0x9E, 0x9A, - 0x2B, 0x38, 0x6A, 0xCB, 0x51, 0xEF, 0x06, 0xDA, - 0xFD, 0x47, 0x92, 0x1D, 0xA5, 0x37, 0x33, 0xEC, - 0xB4, 0x52, 0x56, 0xC3, 0xF4, 0xF8, 0x8B, 0xD0, - 0xA4, 0x5F, 0x28, 0x89, 0x75, 0xC7, 0x04, 0x00, - 0xE4, 0x86, 0x36, 0x3A, 0x99, 0x16, 0x7D, 0xE0, - 0x7A, 0x4C, 0x54, 0x46, 0x73, 0xB2, 0xF3, 0xE1, - 0x62, 0xBE, 0x90, 0x4A, 0x24, 0x6B, 0x3E, 0xAA, - 0x1B, 0xF2, 0x60, 0xD4, 0xA9, 0x9B, 0x1A, 0xB8, - 0xA1, 0x35, 0xAE, 0xB6, 0x10, 0x5C, 0x17, 0xBC, - 0xAB, 0x8D, 0x02, 0x74, 0xBD, 0x3D, 0x8E, 0xDD }; - -static const unsigned char table_16[256] = { - 0x3F, 0x9C, 0x17, 0xC1, 0x59, 0xC6, 0x23, 0x93, - 0x4B, 0xDF, 0xCB, 0x55, 0x2B, 0xDE, 0xCD, 0xAD, - 0xB3, 0xE7, 0x42, 0x2F, 0x02, 0x5A, 0x7B, 0x5C, - 0x8F, 0xD1, 0x11, 0xCE, 0xEC, 0xF6, 0xA4, 0xE6, - 0x58, 0x98, 0x6A, 0x99, 0xFB, 0x9B, 0x53, 0x21, - 0x8A, 0x09, 0x2E, 0x3C, 0x22, 0x38, 0xAC, 0x07, - 0x91, 0x46, 0xA9, 0x95, 0xC3, 0x14, 0x84, 0xDB, - 0x36, 0x68, 0x1D, 0xDD, 0xF9, 0x12, 0xE0, 0x3D, - 0x8D, 0x4D, 0x05, 0x86, 0x69, 0xC0, 0xD3, 0xD5, - 0xA5, 0xC9, 0xE5, 0x67, 0x6D, 0xE2, 0x7F, 0xFE, - 0xB2, 0x0F, 0x62, 0xCF, 0x37, 0x35, 0xF3, 0x28, - 0x16, 0xA6, 0x50, 0x76, 0x80, 0x00, 0x31, 0x97, - 0x39, 0x7C, 0x25, 0x0C, 0x64, 0xF2, 0x52, 0x1A, - 0x92, 0x4F, 0x2A, 0x56, 0x03, 0x4C, 0xBD, 0x10, - 0xB7, 0x2C, 0x8C, 0xAE, 0x73, 0xB9, 0xE9, 0xF7, - 0xA7, 0xE1, 0x75, 0xBC, 0xC5, 0x1C, 0x3A, 0x63, - 0x7A, 0x4A, 0x29, 0xD2, 0x71, 0xE8, 0x08, 0xA1, - 0xD4, 0xFD, 0x13, 0xFA, 0xA0, 0x27, 0x41, 0x72, - 0x82, 0x18, 0x51, 0x60, 0x5E, 0x66, 0x0D, 0xAA, - 0xD8, 0x1F, 0xAF, 0x45, 0xD0, 0xF1, 0x9F, 0x6B, - 0xE4, 0x44, 0x89, 0xEE, 0xC4, 0x0B, 0x6C, 0xCC, - 0x83, 0x77, 0xA2, 0x87, 0x0A, 0xA8, 0xED, 0x90, - 0x74, 0x6E, 0xF5, 0xAB, 0xA3, 0xB6, 0x5F, 0x0E, - 0x04, 0x9A, 0xB4, 0x8E, 0xF0, 0xFF, 0x88, 0xB5, - 0xF8, 0xBF, 0x8B, 0x6F, 0x4E, 0x79, 0x40, 0xCA, - 0x24, 0x26, 0xDC, 0x33, 0xEB, 0x2D, 0x5B, 0x1B, - 0x9D, 0xC7, 0x49, 0x48, 0x54, 0x85, 0xEF, 0xD7, - 0xC2, 0xB8, 0xC8, 0x5D, 0xD9, 0x3B, 0x15, 0xBB, - 0x65, 0xE3, 0xD6, 0x30, 0x3E, 0x1E, 0x32, 0x9E, - 0x57, 0x81, 0x34, 0x06, 0xFC, 0xBA, 0x7D, 0x20, - 0x70, 0xDA, 0x7E, 0x47, 0x94, 0x61, 0xB0, 0x78, - 0xF4, 0xBE, 0xEA, 0x19, 0x43, 0x01, 0xB1, 0x96 }; - -static const unsigned char table_17[256] = { - 0x7E, 0xF1, 0xD3, 0x75, 0x87, 0xA6, 0xED, 0x9E, - 0xA9, 0xD5, 0xC6, 0xBF, 0xE6, 0x6A, 0xEE, 0x4B, - 0x34, 0xDF, 0x4C, 0x7D, 0xDD, 0xFE, 0x3F, 0xAF, - 0x66, 0x2D, 0x74, 0x6F, 0xFC, 0x4F, 0x5F, 0x88, - 0x29, 0x7B, 0xC7, 0x2A, 0x70, 0xE8, 0x1D, 0xDE, - 0xD0, 0x55, 0x71, 0x81, 0xC4, 0x0D, 0x50, 0x4E, - 0x58, 0x00, 0x96, 0x97, 0xBB, 0xD7, 0x53, 0x15, - 0x6C, 0x40, 0x17, 0xC9, 0xFF, 0x8F, 0x94, 0xFB, - 0x19, 0x9A, 0x3E, 0xB5, 0x5A, 0x5E, 0x86, 0x24, - 0xB8, 0x77, 0xBA, 0x85, 0x51, 0x18, 0xBE, 0x59, - 0x79, 0xF3, 0xD4, 0xC3, 0xAB, 0x28, 0xFD, 0x25, - 0x41, 0x91, 0x07, 0x8D, 0xAE, 0x49, 0xF5, 0x80, - 0x35, 0xA1, 0x9C, 0x3C, 0xE2, 0x65, 0xB3, 0xE0, - 0x16, 0xCB, 0x12, 0x6B, 0xF7, 0xB1, 0x93, 0x8A, - 0xCE, 0x54, 0x4D, 0xF8, 0x13, 0xA2, 0x95, 0x46, - 0xEA, 0x61, 0x57, 0x9D, 0x27, 0x8B, 0x3D, 0x60, - 0x36, 0x68, 0x06, 0x56, 0xB6, 0x1B, 0xD2, 0x89, - 0x10, 0xA7, 0xC5, 0x1A, 0x0B, 0x2C, 0xBD, 0x14, - 0x0A, 0xDC, 0x23, 0xA8, 0xE1, 0x04, 0x02, 0xC0, - 0xB2, 0x9B, 0xE3, 0x2E, 0x33, 0x7C, 0x32, 0xAC, - 0x7A, 0x39, 0xB0, 0xF9, 0x98, 0x5B, 0x3A, 0x48, - 0x21, 0x90, 0xB9, 0x20, 0xF0, 0xA0, 0x09, 0x1F, - 0x2F, 0xEF, 0xEB, 0x22, 0x78, 0x82, 0x37, 0xD6, - 0xD1, 0x84, 0x76, 0x01, 0xDB, 0x43, 0xC2, 0xB7, - 0x7F, 0xA4, 0xE5, 0xC1, 0x1C, 0x69, 0x05, 0xEC, - 0xD8, 0x38, 0x67, 0x42, 0x72, 0xBC, 0x73, 0xAD, - 0xA3, 0xE9, 0x4A, 0x8E, 0x47, 0x1E, 0xC8, 0x6E, - 0xDA, 0x5D, 0x2B, 0xF6, 0x30, 0x63, 0xCC, 0xF4, - 0xCD, 0x8C, 0x0F, 0x3B, 0xE7, 0xD9, 0xCF, 0xB4, - 0x03, 0x92, 0x0E, 0x31, 0xE4, 0x08, 0xF2, 0x45, - 0xCA, 0x83, 0x26, 0x5C, 0xA5, 0x44, 0x64, 0x6D, - 0x9F, 0x99, 0x62, 0xAA, 0xFA, 0x11, 0x0C, 0x52 }; - -static const unsigned char table_18[256] = { - 0x0F, 0x42, 0x3D, 0x86, 0x3E, 0x66, 0xFE, 0x5C, - 0x52, 0xE2, 0xA3, 0xB3, 0xCE, 0x16, 0xCC, 0x95, - 0xB0, 0x8B, 0x82, 0x3B, 0x93, 0x7D, 0x62, 0x08, - 0x1C, 0x6E, 0xBB, 0xCB, 0x1D, 0x88, 0x69, 0xD4, - 0xC9, 0x40, 0x1F, 0xBE, 0x27, 0xBC, 0xDB, 0x38, - 0xE5, 0xA1, 0x71, 0xBA, 0x8A, 0x5E, 0xFD, 0x36, - 0x8F, 0x26, 0x6B, 0xE4, 0x20, 0x6D, 0xC5, 0xDE, - 0xE0, 0x83, 0x7C, 0xD5, 0xD9, 0x4D, 0xDC, 0xE3, - 0x0D, 0x32, 0xED, 0x0E, 0x2F, 0x21, 0xA7, 0x79, - 0xA0, 0xD3, 0x8C, 0x14, 0x6F, 0xB7, 0xF8, 0x85, - 0x5D, 0x37, 0x24, 0xD6, 0x25, 0xD2, 0x8E, 0xA5, - 0xB8, 0xCD, 0x5A, 0x9F, 0x05, 0xAD, 0x65, 0x9E, - 0x4F, 0x5B, 0x56, 0xF0, 0xAA, 0xC2, 0x28, 0xA8, - 0x6A, 0x01, 0x99, 0x2E, 0xA6, 0x77, 0x74, 0x64, - 0x76, 0x15, 0x90, 0x75, 0xAF, 0xE8, 0x39, 0x48, - 0x09, 0x11, 0xE1, 0x2D, 0xEC, 0xB5, 0x7A, 0xB1, - 0x94, 0x13, 0x41, 0x4C, 0x02, 0xA9, 0x97, 0xDF, - 0xC3, 0x8D, 0xEA, 0x3A, 0x9C, 0xD1, 0xA2, 0x9A, - 0xD7, 0x59, 0xD8, 0x18, 0xDA, 0x47, 0x89, 0x81, - 0xC7, 0xF5, 0xFC, 0x98, 0xCA, 0x91, 0x06, 0x68, - 0xC8, 0x07, 0x4A, 0x84, 0x0A, 0xE7, 0x33, 0x2C, - 0xEB, 0xDD, 0x5F, 0xAC, 0x23, 0x1A, 0x35, 0x70, - 0x43, 0x80, 0x61, 0xAE, 0xC1, 0xD0, 0x7B, 0x92, - 0x49, 0x51, 0x53, 0xC4, 0x34, 0x30, 0x0C, 0x4B, - 0x00, 0x04, 0x10, 0xFF, 0x63, 0x44, 0xB4, 0x0B, - 0x57, 0x72, 0xF1, 0x9D, 0x19, 0xF6, 0xB2, 0x87, - 0x1B, 0xEE, 0x46, 0x2A, 0xF3, 0xBF, 0x12, 0x96, - 0x58, 0x2B, 0xF9, 0xB6, 0xCF, 0x22, 0x3C, 0xAB, - 0x1E, 0x6C, 0x31, 0xC6, 0xF7, 0x78, 0x45, 0x17, - 0xE9, 0x7E, 0x73, 0xF2, 0x55, 0xFB, 0x3F, 0x9B, - 0xF4, 0xBD, 0xA4, 0x29, 0x60, 0x03, 0xB9, 0x50, - 0xFA, 0x4E, 0xEF, 0x54, 0xE6, 0x7F, 0xC0, 0x67 }; - -static const unsigned char table_19[256] = { - 0xEA, 0xE7, 0x13, 0x14, 0xB9, 0xC0, 0xC4, 0x42, - 0x49, 0x6E, 0x2A, 0xA6, 0x65, 0x3C, 0x6A, 0x40, - 0x07, 0xCD, 0x4F, 0xFE, 0xF2, 0x2D, 0xC8, 0x30, - 0x9D, 0xBE, 0x1B, 0x9B, 0x4A, 0x7E, 0x9F, 0xA7, - 0x78, 0xAB, 0x4D, 0x1D, 0xF1, 0x96, 0x32, 0x84, - 0xFB, 0x80, 0x88, 0xE8, 0x41, 0x97, 0xDC, 0xD0, - 0x4E, 0x33, 0xA4, 0x3B, 0xE0, 0xDD, 0x36, 0xC9, - 0x72, 0x48, 0x8A, 0x2F, 0x35, 0xF0, 0xDF, 0x21, - 0xE1, 0xE5, 0x6C, 0x9A, 0x60, 0x8F, 0xB7, 0x24, - 0xE4, 0x9E, 0x8C, 0x0F, 0x3D, 0x28, 0xBB, 0xD6, - 0x69, 0xA0, 0x66, 0xC7, 0xE3, 0xD8, 0x11, 0x27, - 0xD9, 0x37, 0xF4, 0xF5, 0x8E, 0xD4, 0x76, 0xE2, - 0xDB, 0x15, 0xA2, 0x5C, 0x9C, 0xEE, 0x44, 0xED, - 0x2B, 0xB3, 0x75, 0x74, 0x71, 0x8B, 0x3A, 0x91, - 0x06, 0x19, 0xC1, 0x57, 0x89, 0xCC, 0x82, 0x10, - 0x17, 0xB2, 0x08, 0x70, 0x39, 0xCA, 0xBA, 0xB5, - 0xAA, 0xBF, 0x02, 0xBD, 0x26, 0x58, 0x04, 0x54, - 0x23, 0x4B, 0x90, 0x51, 0x6D, 0x98, 0xD5, 0xB0, - 0xAF, 0x22, 0xDA, 0xB4, 0x87, 0xFC, 0x7D, 0x18, - 0x6F, 0x64, 0x59, 0x09, 0x0C, 0xA5, 0x5D, 0x03, - 0x0A, 0xD3, 0xCE, 0x99, 0x8D, 0xC2, 0xC3, 0x62, - 0xD2, 0x83, 0x1A, 0xAC, 0x7C, 0x93, 0xD7, 0xA9, - 0x16, 0xF7, 0x77, 0xE6, 0x3E, 0x05, 0x73, 0x55, - 0x43, 0x95, 0x7A, 0x6B, 0x38, 0x67, 0x3F, 0xC6, - 0xAD, 0x0E, 0x29, 0x46, 0x45, 0xFA, 0xBC, 0xEC, - 0x5B, 0x7F, 0x0B, 0x1C, 0x01, 0x12, 0x85, 0x50, - 0xF9, 0xEF, 0x25, 0x34, 0x79, 0x2E, 0xEB, 0x00, - 0x5F, 0x86, 0xF8, 0x4C, 0xA8, 0x56, 0xB6, 0x5A, - 0xF3, 0x31, 0x94, 0x92, 0xB1, 0xB8, 0x52, 0xD1, - 0xCF, 0xCB, 0xA1, 0x81, 0x68, 0x47, 0xFF, 0xC5, - 0xFD, 0x1F, 0xDE, 0x53, 0xA3, 0x2C, 0x20, 0xF6, - 0x1E, 0x0D, 0xAE, 0x7B, 0x5E, 0x61, 0xE9, 0x63 }; - -static const unsigned char table_20[32] = { - 0x0D, 0x0B, 0x11, 0x02, 0x05, 0x1B, 0x08, 0x1D, - 0x04, 0x14, 0x01, 0x09, 0x00, 0x19, 0x1E, 0x15, - 0x1F, 0x0A, 0x0F, 0x1C, 0x10, 0x16, 0x0C, 0x07, - 0x13, 0x1A, 0x06, 0x17, 0x0E, 0x12, 0x18, 0x03 }; - -static const unsigned char table_21[256] = { - 0x4C, 0x94, 0xAD, 0x66, 0x9E, 0x69, 0x04, 0xA8, - 0x61, 0xE0, 0xE1, 0x3D, 0xFD, 0x9C, 0xFB, 0x19, - 0x1E, 0x80, 0x8C, 0xA0, 0xFC, 0x27, 0x26, 0x3B, - 0x48, 0x6D, 0x07, 0xE4, 0xEA, 0x17, 0x64, 0x9B, - 0xD0, 0xE2, 0xD1, 0x13, 0x39, 0xF5, 0x73, 0xD3, - 0x0C, 0x3A, 0x6E, 0x77, 0xFA, 0xE3, 0x2F, 0x44, - 0x7E, 0x72, 0x30, 0x43, 0xD4, 0x7F, 0x36, 0xD9, - 0xBD, 0x3E, 0x3F, 0x91, 0xBE, 0x54, 0x79, 0xA6, - 0x7C, 0x0E, 0xC5, 0x7A, 0x70, 0xC4, 0xD7, 0xCE, - 0xDA, 0xAA, 0x68, 0x8F, 0xBC, 0x96, 0x1B, 0x16, - 0xA2, 0xC6, 0x67, 0x09, 0x45, 0x9F, 0xCF, 0x41, - 0xC8, 0x60, 0x74, 0x99, 0x5D, 0x85, 0x5F, 0x50, - 0x33, 0x52, 0x22, 0xA9, 0xB5, 0x2D, 0x98, 0x87, - 0x15, 0x9A, 0xAC, 0x2C, 0xDE, 0xC0, 0xB8, 0x37, - 0x88, 0x1F, 0xC1, 0x4F, 0x65, 0x0F, 0x3C, 0x84, - 0x4B, 0x1A, 0xAB, 0xA4, 0x23, 0xCB, 0xB1, 0xC7, - 0xDB, 0xEF, 0x40, 0x0D, 0x46, 0xE8, 0xF4, 0x71, - 0x38, 0x01, 0x5C, 0x0B, 0x5E, 0xC9, 0xAF, 0xC3, - 0xF6, 0xB6, 0x10, 0x1D, 0xE5, 0x8A, 0x90, 0xA7, - 0xA3, 0x05, 0x4E, 0x14, 0x63, 0x25, 0x34, 0xEC, - 0x6B, 0x95, 0x21, 0x55, 0xF2, 0xF0, 0x47, 0x9D, - 0xF8, 0x8E, 0x02, 0x0A, 0xED, 0x97, 0xAE, 0x00, - 0x2A, 0xEB, 0xB2, 0xA5, 0x32, 0x06, 0x2E, 0xFE, - 0x8D, 0x7B, 0x7D, 0x35, 0x5A, 0xD2, 0xF1, 0xE9, - 0xF9, 0x62, 0xB7, 0xB9, 0x53, 0x75, 0x5B, 0x8B, - 0xCC, 0x6C, 0x18, 0x49, 0x89, 0x31, 0xB0, 0x92, - 0x6F, 0xDF, 0x03, 0x57, 0xF3, 0x58, 0xCA, 0x2B, - 0x93, 0xA1, 0xD6, 0x24, 0x29, 0xCD, 0x59, 0x1C, - 0x83, 0xB3, 0x42, 0xBF, 0x82, 0xB4, 0x11, 0x4A, - 0x08, 0xEE, 0x76, 0x4D, 0x12, 0xDC, 0xE6, 0xC2, - 0x56, 0xBA, 0x86, 0x28, 0x6A, 0x20, 0x51, 0xF7, - 0xFF, 0xD8, 0xE7, 0xDD, 0xBB, 0x78, 0xD5, 0x81 }; - -static const unsigned char table_22[32] = { - 0x0B, 0x15, 0x1C, 0x0C, 0x06, 0x0A, 0x1D, 0x16, - 0x12, 0x0E, 0x04, 0x11, 0x1F, 0x0F, 0x07, 0x02, - 0x17, 0x13, 0x19, 0x18, 0x0D, 0x10, 0x1A, 0x05, - 0x03, 0x00, 0x01, 0x08, 0x09, 0x14, 0x1B, 0x1E }; - -static const unsigned char table_23[256] = { - 0x36, 0x53, 0x2D, 0xD0, 0x7A, 0xF0, 0xD5, 0x1C, - 0x50, 0x61, 0x9A, 0x90, 0x0B, 0x29, 0x20, 0x77, - 0xF1, 0x82, 0xFE, 0xC1, 0xA7, 0xB6, 0x78, 0x87, - 0x02, 0x05, 0xCB, 0x28, 0xAE, 0xD6, 0x17, 0x1A, - 0x91, 0x5D, 0xB9, 0xE2, 0xDE, 0x6A, 0x4E, 0x07, - 0xAC, 0x38, 0x13, 0x3B, 0x46, 0xFD, 0xB7, 0xD1, - 0x79, 0xFB, 0x58, 0x76, 0x08, 0x47, 0x95, 0xA6, - 0x99, 0x9E, 0x12, 0x67, 0xC2, 0xED, 0x9C, 0x1B, - 0x89, 0x71, 0xB5, 0x4A, 0xAA, 0x5F, 0x34, 0x85, - 0x40, 0x2B, 0x9F, 0x37, 0x7C, 0x0F, 0xD4, 0x75, - 0x48, 0x27, 0x2E, 0xC9, 0xEB, 0x06, 0xDF, 0x8C, - 0x14, 0xAF, 0xEE, 0xA2, 0x74, 0x45, 0x8D, 0x70, - 0x6B, 0xD7, 0x56, 0xCF, 0xBC, 0x7B, 0x01, 0xC8, - 0x54, 0xB0, 0x3C, 0x39, 0xFA, 0x81, 0xDC, 0xBB, - 0x0D, 0xB2, 0xAD, 0x93, 0xC7, 0x8A, 0x73, 0x6C, - 0xC3, 0x04, 0x2F, 0xEF, 0x52, 0x33, 0x9D, 0x1E, - 0xC5, 0x65, 0x23, 0xD8, 0xB1, 0xD2, 0xE5, 0x25, - 0x2C, 0xE6, 0x92, 0xB4, 0xF7, 0xF4, 0x8F, 0x6E, - 0xE8, 0x5A, 0x8E, 0x7D, 0x4C, 0xB3, 0xFF, 0x41, - 0x26, 0xE3, 0x30, 0x69, 0xF8, 0x80, 0x57, 0x4F, - 0xA0, 0x7F, 0x66, 0x68, 0xE1, 0x7E, 0x0E, 0x31, - 0xE7, 0xEA, 0x3E, 0x8B, 0x4B, 0x94, 0xE9, 0xCD, - 0x19, 0x35, 0xA3, 0x98, 0xD9, 0x5B, 0x44, 0x2A, - 0xE0, 0x6D, 0xF3, 0xE4, 0x72, 0x18, 0x03, 0x59, - 0x84, 0x09, 0xA1, 0x9B, 0xBD, 0xDA, 0x4D, 0x63, - 0xCC, 0x3A, 0x10, 0xFC, 0x3F, 0x0A, 0x88, 0x24, - 0xF5, 0x21, 0xC4, 0x6F, 0x1F, 0x42, 0x62, 0x64, - 0x51, 0xDD, 0xCA, 0xF9, 0x22, 0xCE, 0xA8, 0x86, - 0xBA, 0xB8, 0x5C, 0xAB, 0x32, 0x00, 0x0C, 0xF2, - 0x83, 0xDB, 0xF6, 0x60, 0x3D, 0x16, 0xEC, 0x11, - 0xA4, 0xBE, 0x96, 0x5E, 0x97, 0xD3, 0xA5, 0x55, - 0x1D, 0x15, 0xC6, 0xBF, 0xA9, 0x43, 0xC0, 0x49 }; - -static const unsigned char table_24[256] = { - 0xDC, 0x5A, 0xE6, 0x59, 0x64, 0xDA, 0x58, 0x40, - 0x95, 0xF8, 0x2A, 0xE0, 0x39, 0x7E, 0x32, 0x89, - 0x09, 0x93, 0xED, 0x55, 0xC3, 0x5B, 0x1A, 0xD1, - 0xA5, 0x8B, 0x0F, 0x13, 0xC9, 0xE1, 0x34, 0xD0, - 0xB6, 0xA2, 0xD9, 0x52, 0x57, 0x83, 0xFD, 0xE9, - 0xAC, 0x73, 0x6E, 0x21, 0xF1, 0x0E, 0x25, 0xCC, - 0x36, 0xFB, 0xF7, 0x92, 0x15, 0x30, 0x54, 0x91, - 0xD6, 0x9E, 0xAA, 0x35, 0x70, 0xB2, 0xC0, 0x27, - 0xFE, 0x04, 0xBC, 0xC7, 0x02, 0xFA, 0x7D, 0xE3, - 0xBE, 0x62, 0x79, 0x2B, 0x31, 0x6A, 0x8F, 0x7F, - 0x56, 0xF0, 0xB4, 0x0C, 0x1F, 0x68, 0xB7, 0xB9, - 0x0B, 0x14, 0x3E, 0xA9, 0x4B, 0x03, 0x10, 0xEE, - 0x2C, 0xAB, 0x8A, 0x77, 0xB1, 0xE7, 0xCA, 0xD4, - 0x98, 0x01, 0xAD, 0x1E, 0x50, 0x26, 0x82, 0x44, - 0xF3, 0xBF, 0xD3, 0x6B, 0x33, 0x0A, 0x3C, 0x5D, - 0xCE, 0x81, 0xC5, 0x78, 0x9F, 0xB8, 0x23, 0xDB, - 0x4E, 0xA1, 0x41, 0x76, 0xAE, 0x51, 0x86, 0x06, - 0x7A, 0x66, 0xA0, 0x5E, 0x29, 0x17, 0x84, 0x4A, - 0xB0, 0x3B, 0x3D, 0x71, 0x07, 0x7B, 0x0D, 0x9A, - 0x6F, 0x9B, 0x5C, 0x88, 0xB3, 0xD7, 0x24, 0xD5, - 0x48, 0xF5, 0xE8, 0xE4, 0xCF, 0x16, 0xA4, 0xC8, - 0xEF, 0x42, 0x22, 0xEC, 0x47, 0x69, 0x90, 0x63, - 0xE2, 0x1B, 0x87, 0x85, 0x3F, 0xDE, 0x8C, 0x60, - 0x99, 0xE5, 0x8E, 0x4F, 0xF4, 0xBA, 0xB5, 0x9C, - 0x37, 0x67, 0xBD, 0xA6, 0x97, 0xDD, 0xCB, 0x43, - 0x45, 0x19, 0x49, 0x1C, 0x75, 0xC1, 0xBB, 0xF2, - 0x46, 0xFC, 0x53, 0x9D, 0xD8, 0xA3, 0xDF, 0x2F, - 0xEB, 0x72, 0x94, 0xA8, 0x6D, 0xC6, 0x28, 0x4C, - 0x00, 0x38, 0xC2, 0x65, 0x05, 0x2E, 0xD2, 0x12, - 0xFF, 0x18, 0x61, 0x6C, 0x7C, 0x11, 0xAF, 0x96, - 0xCD, 0x20, 0x74, 0x08, 0x1D, 0xC4, 0xF9, 0x4D, - 0xEA, 0x8D, 0x2D, 0x5F, 0xF6, 0xA7, 0x80, 0x3A }; - -static const unsigned char table_25[32] = { - 0x0A, 0x11, 0x17, 0x03, 0x05, 0x0B, 0x18, 0x13, - 0x09, 0x02, 0x00, 0x1C, 0x0C, 0x08, 0x1B, 0x14, - 0x06, 0x0E, 0x01, 0x0D, 0x16, 0x1E, 0x1D, 0x19, - 0x0F, 0x1A, 0x10, 0x04, 0x12, 0x15, 0x07, 0x1F }; - -static const unsigned char table_26[32] = { - 0x19, 0x13, 0x1B, 0x01, 0x1C, 0x0D, 0x0C, 0x15, - 0x0B, 0x00, 0x1A, 0x0F, 0x12, 0x16, 0x08, 0x0A, - 0x03, 0x06, 0x14, 0x10, 0x18, 0x04, 0x11, 0x1D, - 0x1F, 0x07, 0x17, 0x05, 0x02, 0x0E, 0x1E, 0x09 }; - -static const unsigned char table_27[256] = { - 0x72, 0xF0, 0x14, 0xCB, 0x61, 0xA5, 0xB2, 0x02, - 0x75, 0x22, 0xC3, 0x9D, 0x5A, 0x63, 0xFA, 0x5F, - 0xD9, 0x55, 0x58, 0x43, 0x24, 0x7D, 0x77, 0x93, - 0xBA, 0x50, 0x1D, 0xF7, 0x49, 0x18, 0xB0, 0x42, - 0xBB, 0xEC, 0x52, 0x38, 0xDC, 0xC8, 0x16, 0x54, - 0x17, 0x19, 0x89, 0x67, 0x33, 0x3C, 0x0A, 0xAD, - 0xC9, 0xDE, 0x81, 0xED, 0xBD, 0x0E, 0x0B, 0x6D, - 0x46, 0x30, 0x35, 0x2B, 0x8C, 0xA0, 0x1C, 0x0D, - 0xFD, 0xA1, 0x70, 0xC6, 0xD8, 0x41, 0xB3, 0xC0, - 0x44, 0xEB, 0x92, 0xBE, 0x6B, 0x98, 0x1A, 0x76, - 0x71, 0xC5, 0x51, 0x56, 0x80, 0xFC, 0x01, 0x53, - 0x4B, 0xD0, 0x8B, 0xD2, 0x7B, 0xE7, 0x15, 0x5D, - 0xE5, 0xA6, 0x8A, 0xD3, 0x9B, 0xF4, 0x69, 0x23, - 0xE8, 0xB6, 0xC7, 0xE2, 0x73, 0x9F, 0x88, 0xDF, - 0xB4, 0x28, 0xEE, 0xC2, 0x94, 0xB8, 0xF9, 0x7F, - 0x4A, 0x57, 0x06, 0xF6, 0xBF, 0xC1, 0xAB, 0xFB, - 0xA4, 0x8E, 0xD1, 0xD7, 0xF5, 0x7C, 0xA3, 0x1E, - 0x3B, 0x32, 0x03, 0xAA, 0x90, 0x5C, 0x48, 0xE0, - 0xE3, 0xCF, 0xD4, 0xEF, 0x59, 0xD5, 0x1B, 0x34, - 0x1F, 0x95, 0xCE, 0x7A, 0x20, 0x26, 0x87, 0xB7, - 0x78, 0x9C, 0x4F, 0xA2, 0x12, 0x97, 0x27, 0x3F, - 0xFF, 0x07, 0x84, 0x96, 0x04, 0xAF, 0xA8, 0xEA, - 0x2C, 0x6C, 0xAE, 0x37, 0x91, 0xA9, 0x10, 0xDB, - 0xCD, 0xDA, 0x08, 0x99, 0xF1, 0x4D, 0xCC, 0x68, - 0x79, 0x2E, 0xB1, 0x39, 0x9E, 0xE9, 0x2F, 0x6A, - 0x3D, 0x0F, 0x85, 0x8D, 0xCA, 0x29, 0x86, 0xD6, - 0xDD, 0x05, 0x25, 0x3A, 0x40, 0x21, 0x45, 0xAC, - 0x11, 0xF3, 0xA7, 0x09, 0x2A, 0x31, 0xE4, 0x0C, - 0xF8, 0x6E, 0x3E, 0xB5, 0x82, 0xFE, 0x74, 0x13, - 0x65, 0xE1, 0x2D, 0x8F, 0xE6, 0xC4, 0x00, 0x5B, - 0x4E, 0xB9, 0x66, 0xF2, 0x62, 0x36, 0x4C, 0x83, - 0x5E, 0x6F, 0x47, 0x64, 0xBC, 0x9A, 0x60, 0x7E }; - -static const unsigned char table_28[32] = { - 0x15, 0x05, 0x08, 0x19, 0x02, 0x18, 0x1E, 0x07, - 0x0D, 0x0C, 0x1A, 0x06, 0x17, 0x03, 0x10, 0x09, - 0x01, 0x11, 0x1C, 0x04, 0x0F, 0x1F, 0x12, 0x0B, - 0x1B, 0x13, 0x0A, 0x16, 0x0E, 0x00, 0x1D, 0x14 }; - -static const unsigned char table_29[256] = { - 0x34, 0x59, 0x05, 0x13, 0x09, 0x1D, 0xDF, 0x77, - 0x11, 0xA5, 0x92, 0x27, 0xCD, 0x7B, 0x5E, 0x80, - 0xF9, 0x50, 0x18, 0x24, 0xD4, 0x70, 0x4A, 0x39, - 0x66, 0xA4, 0xDB, 0xE9, 0xED, 0x48, 0xD9, 0xE7, - 0x32, 0xDA, 0x53, 0x8F, 0x72, 0xE1, 0xF6, 0xFE, - 0xD3, 0xAD, 0xA6, 0x1F, 0xB9, 0xD1, 0x0F, 0x4C, - 0x23, 0x90, 0x68, 0xBC, 0x4B, 0x9B, 0x3D, 0xAB, - 0xF0, 0x94, 0x4F, 0x1C, 0x07, 0x65, 0x7F, 0x01, - 0x5C, 0xD7, 0x21, 0x8C, 0xBF, 0x8E, 0xB8, 0x86, - 0x6C, 0x33, 0x36, 0xC1, 0x06, 0x74, 0x37, 0x84, - 0x41, 0xAE, 0x67, 0x29, 0xB4, 0x85, 0xCE, 0x2A, - 0xCB, 0x1E, 0x61, 0x9E, 0x7A, 0x44, 0x3E, 0x89, - 0x14, 0x20, 0x19, 0xBB, 0xE0, 0xAA, 0xCF, 0x83, - 0xA8, 0x93, 0x43, 0xF2, 0xAC, 0x0E, 0xD2, 0xCC, - 0xDD, 0x47, 0x58, 0xC9, 0xCA, 0x1B, 0x54, 0x6E, - 0x8A, 0x79, 0xF8, 0xC4, 0xFB, 0xD5, 0x91, 0xDE, - 0x12, 0x31, 0x99, 0xFA, 0x6D, 0xC8, 0x57, 0xEC, - 0xB7, 0x28, 0x0C, 0x52, 0xF1, 0x0D, 0xB1, 0x9A, - 0x26, 0x98, 0x16, 0x7D, 0xD0, 0x2E, 0x8B, 0xD8, - 0xE6, 0xE8, 0x30, 0xFD, 0x7C, 0x64, 0x5A, 0xBD, - 0x87, 0xE2, 0xA1, 0x3F, 0xC3, 0x38, 0x96, 0xA3, - 0x2D, 0xF3, 0x3A, 0xEE, 0xC0, 0x10, 0xEA, 0x6F, - 0x8D, 0x03, 0xF4, 0x51, 0x97, 0x7E, 0x56, 0x42, - 0x3C, 0x5D, 0x5F, 0xF5, 0x6A, 0xAF, 0xE4, 0xBE, - 0xBA, 0x78, 0xA0, 0x5B, 0x49, 0xA7, 0xC7, 0x9C, - 0x63, 0x6B, 0x00, 0x17, 0x69, 0x75, 0x3B, 0x40, - 0xEF, 0x45, 0xB5, 0x2B, 0x2F, 0x02, 0xC6, 0x22, - 0x9F, 0xFC, 0x73, 0x08, 0x81, 0xB2, 0x2C, 0x71, - 0x35, 0xA2, 0xE3, 0xB3, 0x9D, 0xC5, 0x0A, 0xC2, - 0x25, 0x82, 0xDC, 0x88, 0xA9, 0xE5, 0xF7, 0xEB, - 0xD6, 0x60, 0x76, 0x55, 0x0B, 0x4E, 0xFF, 0x1A, - 0x46, 0x62, 0xB6, 0xB0, 0x15, 0x04, 0x95, 0x4D }; - -static const unsigned char table_30[32] = { - 0x00, 0x1C, 0x0E, 0x0C, 0x06, 0x16, 0x09, 0x12, - 0x01, 0x13, 0x0B, 0x14, 0x11, 0x08, 0x04, 0x18, - 0x10, 0x1B, 0x15, 0x03, 0x02, 0x19, 0x1A, 0x17, - 0x1E, 0x1F, 0x0F, 0x07, 0x0D, 0x05, 0x1D, 0x0A }; - -static const unsigned char table_31[256] = { - 0xDF, 0xD8, 0x3F, 0xBC, 0x5F, 0xC9, 0x8E, 0x4C, - 0x0B, 0x3C, 0xE5, 0xBF, 0x39, 0xD5, 0x30, 0xDD, - 0x23, 0xC7, 0x72, 0x63, 0x1F, 0xF8, 0x96, 0x31, - 0x70, 0xD6, 0x9E, 0xE8, 0x9D, 0xF5, 0xEF, 0x65, - 0xC2, 0x50, 0x62, 0x77, 0xD3, 0x6C, 0x1A, 0x91, - 0xBB, 0xFF, 0xCD, 0x9B, 0xB6, 0xBA, 0xB8, 0x7A, - 0x14, 0xA7, 0x74, 0x89, 0xD4, 0x6E, 0x19, 0x69, - 0xAB, 0x01, 0x15, 0x0E, 0x87, 0x55, 0x79, 0x1C, - 0x18, 0xBE, 0xA8, 0xDB, 0x52, 0xD2, 0x8F, 0x7E, - 0x81, 0xAF, 0xFD, 0x5C, 0x3E, 0x1B, 0xB9, 0xB2, - 0xB7, 0x51, 0x57, 0x8C, 0xCF, 0x5B, 0xA4, 0x75, - 0xDE, 0x22, 0x8B, 0x10, 0x12, 0xC8, 0x35, 0x2D, - 0x45, 0xB5, 0xF0, 0x47, 0x88, 0x16, 0xEB, 0x67, - 0xD9, 0x0C, 0xF1, 0xC1, 0x34, 0x33, 0xC6, 0x78, - 0xB3, 0x26, 0xE3, 0xBD, 0x5D, 0x4E, 0x66, 0xE4, - 0xD7, 0xC4, 0xE6, 0xA1, 0xB0, 0x95, 0x2B, 0x9A, - 0x4A, 0x3A, 0xCB, 0x40, 0xE1, 0x60, 0x49, 0xCC, - 0x03, 0xAC, 0xF4, 0x97, 0x32, 0x0F, 0x38, 0x17, - 0xF9, 0xE0, 0xD1, 0xFB, 0x04, 0x5E, 0x68, 0x06, - 0xAE, 0xFA, 0xAA, 0xED, 0x24, 0x0D, 0x00, 0x61, - 0x20, 0xA3, 0x7B, 0x6B, 0x76, 0x27, 0xEA, 0xCE, - 0x6A, 0x82, 0x9F, 0x6D, 0x9C, 0x64, 0xA2, 0x11, - 0x37, 0x2A, 0xCA, 0x84, 0x25, 0x7C, 0x2F, 0x8D, - 0x90, 0xE7, 0x09, 0x93, 0xF3, 0x43, 0x71, 0xEC, - 0xA9, 0x7D, 0x94, 0xA6, 0x3D, 0x7F, 0x54, 0x44, - 0x99, 0x80, 0x41, 0xC0, 0xA0, 0x8A, 0x1E, 0xDC, - 0x08, 0xD0, 0x2E, 0x42, 0x05, 0x85, 0x86, 0xFE, - 0x3B, 0x59, 0xC3, 0x58, 0x13, 0xB4, 0x36, 0xA5, - 0x73, 0x28, 0x29, 0xDA, 0x4F, 0x1D, 0xB1, 0x53, - 0x46, 0x2C, 0xF2, 0x4D, 0xAD, 0xFC, 0x83, 0x02, - 0x6F, 0x07, 0xE9, 0xEE, 0x21, 0x98, 0x5A, 0xC5, - 0x92, 0x48, 0xF7, 0x0A, 0xF6, 0xE2, 0x4B, 0x56 }; - -static const unsigned char table_32[256] = { - 0x7B, 0x0F, 0x56, 0x2F, 0x1E, 0x2A, 0x7A, 0xD1, - 0x02, 0x91, 0x4E, 0x37, 0x6C, 0x10, 0xA7, 0xF2, - 0x38, 0xAC, 0x9E, 0x2B, 0x5E, 0x23, 0xE3, 0x19, - 0x9B, 0xF6, 0xB0, 0x59, 0x14, 0xB9, 0xA9, 0x46, - 0x84, 0x1D, 0xC0, 0x98, 0xF3, 0xE1, 0xE8, 0x94, - 0x52, 0x35, 0xBA, 0xD8, 0x07, 0xEF, 0x31, 0xF8, - 0x03, 0x76, 0x9C, 0xD7, 0xE4, 0x8B, 0xAF, 0x60, - 0xDD, 0x51, 0x00, 0xDF, 0x11, 0x7F, 0x1C, 0xED, - 0x49, 0xC9, 0xF4, 0x87, 0x64, 0xFC, 0x5D, 0xAD, - 0x88, 0x85, 0xF7, 0x5A, 0x92, 0xDB, 0x72, 0x1A, - 0x83, 0x15, 0x30, 0x24, 0x9F, 0xFF, 0x5B, 0xF1, - 0xD2, 0xFD, 0xC2, 0xB5, 0x25, 0x22, 0x18, 0x3D, - 0xCD, 0x97, 0x8C, 0xCC, 0x78, 0x90, 0xAA, 0x5F, - 0x0A, 0x57, 0x05, 0x61, 0xD4, 0xA0, 0x3A, 0xDE, - 0x3B, 0xF9, 0x65, 0x68, 0x4F, 0x28, 0xFA, 0xEB, - 0x63, 0x2D, 0x8D, 0xD0, 0xA1, 0xFE, 0x12, 0x96, - 0x3C, 0x42, 0x29, 0xD6, 0xA4, 0x34, 0xBD, 0x70, - 0x89, 0xBE, 0xF5, 0x79, 0xAB, 0x8F, 0x32, 0xB4, - 0xEE, 0xE7, 0x2C, 0x04, 0x4B, 0xD5, 0xB1, 0x54, - 0xF0, 0xDA, 0x16, 0x77, 0xA6, 0x53, 0xB2, 0xE2, - 0x73, 0xBF, 0x17, 0xA8, 0x75, 0x26, 0xE0, 0xBC, - 0x0C, 0x71, 0xFB, 0x6D, 0x7E, 0xC5, 0xEA, 0x21, - 0x9D, 0x95, 0x8E, 0xA5, 0x48, 0xB8, 0x7D, 0xCB, - 0x01, 0x99, 0xE5, 0xBB, 0x82, 0xC4, 0xCA, 0xC1, - 0x58, 0x6E, 0x5C, 0x7C, 0xDC, 0x33, 0xB6, 0xC3, - 0x09, 0xC7, 0x1F, 0x0D, 0x43, 0x6F, 0xE9, 0x86, - 0x27, 0xC8, 0x44, 0xB3, 0xD3, 0xCF, 0x08, 0x66, - 0x1B, 0x20, 0x4D, 0xD9, 0xC6, 0x36, 0x40, 0x74, - 0x62, 0x6A, 0x55, 0xEC, 0x06, 0x2E, 0xE6, 0x80, - 0x13, 0x93, 0x50, 0xCE, 0x69, 0x3E, 0x67, 0x4A, - 0x81, 0x4C, 0x0B, 0x3F, 0xB7, 0x0E, 0x39, 0xAE, - 0x47, 0x6B, 0x8A, 0xA2, 0x9A, 0xA3, 0x45, 0x41 }; - -static const unsigned char table_33[256] = { - 0xDE, 0xD3, 0x79, 0x67, 0x13, 0x5C, 0x04, 0xF2, - 0xD9, 0x9F, 0x65, 0x56, 0xCC, 0x3B, 0xA4, 0x9A, - 0x08, 0xBF, 0x26, 0xB2, 0xA7, 0x5E, 0xAA, 0xCA, - 0xBB, 0x2B, 0x38, 0x3F, 0xD8, 0x87, 0xFA, 0x5D, - 0x73, 0x8E, 0x1E, 0x93, 0x05, 0xAF, 0x3E, 0x4E, - 0x90, 0xDB, 0x0B, 0x33, 0x0D, 0x2F, 0x86, 0x4F, - 0xFD, 0xD0, 0x39, 0xB1, 0x8A, 0x1A, 0x20, 0xE6, - 0xCF, 0xA2, 0x82, 0xDF, 0x42, 0x9C, 0x30, 0x40, - 0xE3, 0xB0, 0x88, 0x5A, 0xEC, 0x25, 0xE2, 0xC4, - 0x12, 0x54, 0x50, 0x97, 0x96, 0x21, 0x23, 0x7B, - 0x1D, 0x61, 0x52, 0x34, 0x7D, 0x69, 0x16, 0xC3, - 0x31, 0xF8, 0x48, 0x19, 0x95, 0x01, 0x29, 0x8C, - 0x15, 0xAC, 0x84, 0x74, 0xAB, 0x70, 0xDA, 0x36, - 0xD6, 0x8F, 0xFE, 0x35, 0xD7, 0x2E, 0x89, 0x07, - 0x62, 0x17, 0xDC, 0x92, 0x45, 0x83, 0xB5, 0xE5, - 0x8B, 0xC0, 0x27, 0x85, 0x7C, 0x9D, 0x55, 0x81, - 0x71, 0xCD, 0xC9, 0x00, 0x02, 0xC1, 0x0A, 0x37, - 0xED, 0xEA, 0xC2, 0x98, 0x49, 0x06, 0x1C, 0x78, - 0x64, 0xCE, 0x9E, 0x4C, 0x7A, 0xB4, 0x43, 0x0F, - 0xE0, 0x7E, 0xBC, 0x5B, 0x51, 0xE7, 0x18, 0xF9, - 0x11, 0xA1, 0xF5, 0xC7, 0xCB, 0x4D, 0x6A, 0x0E, - 0x57, 0xF1, 0xFB, 0xB3, 0x99, 0xF0, 0x32, 0xD5, - 0xA9, 0x4B, 0x6F, 0x6D, 0xA8, 0xC5, 0xDD, 0x7F, - 0xEB, 0xBE, 0xFC, 0x2C, 0x22, 0x58, 0x03, 0x9B, - 0x77, 0xF7, 0xBD, 0xBA, 0xD2, 0x6B, 0xAD, 0x5F, - 0x10, 0x6E, 0x09, 0xD1, 0x1B, 0x24, 0xEF, 0x72, - 0x3D, 0x59, 0x28, 0xE1, 0xB7, 0x44, 0x8D, 0xB8, - 0xAE, 0x2D, 0x60, 0xA6, 0xC8, 0x0C, 0xF4, 0x41, - 0xA3, 0x68, 0x46, 0x6C, 0x76, 0xA0, 0xB6, 0x66, - 0xE4, 0x1F, 0x75, 0x4A, 0xFF, 0x2A, 0x94, 0xD4, - 0xF3, 0xE9, 0x91, 0x63, 0xA5, 0xB9, 0xE8, 0x14, - 0x80, 0x3C, 0xEE, 0x47, 0xC6, 0x3A, 0x53, 0xF6 }; - -static const unsigned char table_34[256] = { - 0xF0, 0xE9, 0x3E, 0xD6, 0x89, 0xC8, 0xC7, 0x23, - 0x75, 0x26, 0x5F, 0x9C, 0x57, 0xB8, 0x2A, 0x29, - 0xE5, 0xB5, 0x68, 0xA4, 0x92, 0x46, 0x40, 0x7F, - 0xF2, 0xBC, 0x6A, 0xE0, 0x8F, 0x0F, 0xE4, 0x3A, - 0xE1, 0x30, 0x84, 0x6E, 0x82, 0x8E, 0x56, 0xC5, - 0x32, 0x85, 0xFB, 0x59, 0x43, 0x41, 0xC2, 0xF6, - 0x67, 0x5A, 0x7C, 0x34, 0xA1, 0xD0, 0x4B, 0xAC, - 0x61, 0x72, 0x6B, 0xAF, 0xC4, 0x20, 0x9A, 0xD4, - 0x74, 0x8D, 0x87, 0x83, 0xE2, 0x62, 0x6D, 0xE6, - 0xE7, 0xF9, 0x76, 0xCB, 0x18, 0x90, 0x4F, 0xFF, - 0xD3, 0x3C, 0x08, 0x79, 0x93, 0x2D, 0x95, 0xA3, - 0xDD, 0x5B, 0xDA, 0x7A, 0x39, 0x4D, 0xC1, 0x2E, - 0xCC, 0x53, 0xE8, 0xA2, 0xCF, 0x15, 0x78, 0x1C, - 0xEB, 0x9B, 0x7B, 0xAD, 0x31, 0x2F, 0xE3, 0xC9, - 0x3B, 0xEC, 0x2C, 0x49, 0x02, 0x52, 0x28, 0xBA, - 0x0C, 0x19, 0x24, 0xF7, 0x97, 0x09, 0xA6, 0xA0, - 0xDF, 0xD1, 0xD2, 0xDC, 0x51, 0xA5, 0x94, 0xFD, - 0x71, 0xF5, 0x50, 0x0A, 0x69, 0x25, 0x88, 0x5C, - 0x91, 0xD5, 0x47, 0x0B, 0x27, 0x13, 0x96, 0xD9, - 0xF1, 0xA9, 0x70, 0xC3, 0xBE, 0x42, 0x4E, 0x4A, - 0xB1, 0x07, 0xA7, 0x54, 0xFE, 0x48, 0x9F, 0x63, - 0x17, 0xAE, 0xB9, 0x58, 0x21, 0x35, 0xED, 0x5D, - 0x9D, 0x3D, 0xB4, 0xFC, 0xEA, 0x8C, 0x80, 0xA8, - 0x1E, 0xB0, 0xDE, 0x0D, 0x11, 0x6F, 0x04, 0x12, - 0xF4, 0x10, 0x64, 0x0E, 0xD7, 0x2B, 0xB3, 0x8B, - 0xB7, 0x01, 0x86, 0xCA, 0xFA, 0x9E, 0xEE, 0x66, - 0x37, 0x65, 0x81, 0x38, 0x1F, 0xAA, 0x73, 0xAB, - 0xBD, 0xDB, 0x14, 0xCD, 0x00, 0xBB, 0x98, 0x44, - 0x45, 0xB6, 0x99, 0x5E, 0xD8, 0x1D, 0x36, 0xF8, - 0x55, 0x6C, 0x16, 0x7E, 0x77, 0x3F, 0x22, 0xEF, - 0xF3, 0x7D, 0xC6, 0xCE, 0x8A, 0xB2, 0x33, 0x4C, - 0x03, 0x05, 0xBF, 0x06, 0x1B, 0xC0, 0x1A, 0x60 }; - -static const unsigned char table_35[256] = { - 0xCC, 0x40, 0xEF, 0x1F, 0xDB, 0xE5, 0x71, 0x51, - 0x3B, 0x0F, 0x7D, 0x9C, 0x83, 0x17, 0x6F, 0x8F, - 0x13, 0xDC, 0x7F, 0xA9, 0xA5, 0xA2, 0x9D, 0xDF, - 0xE7, 0x97, 0x2A, 0x30, 0xF2, 0x73, 0xCF, 0x87, - 0x29, 0xB3, 0x86, 0x43, 0x09, 0xB0, 0x2E, 0x10, - 0x8E, 0xBC, 0x57, 0xBA, 0x68, 0xF5, 0xCB, 0x89, - 0x32, 0xC1, 0x6B, 0x1E, 0xAC, 0xB2, 0x2D, 0x6A, - 0x50, 0xEB, 0x18, 0x06, 0xD8, 0xC7, 0x36, 0x31, - 0xC5, 0xAF, 0x12, 0x15, 0xB7, 0x37, 0x4E, 0x01, - 0x14, 0x21, 0x44, 0x5E, 0xF4, 0xB4, 0xE4, 0x65, - 0xFE, 0x8A, 0xEA, 0x0D, 0xBB, 0x45, 0x8B, 0x25, - 0x80, 0x35, 0x61, 0xA8, 0x4A, 0x47, 0xAB, 0x91, - 0x1B, 0x1C, 0x05, 0x4D, 0x5A, 0xD4, 0xF1, 0x9B, - 0x0E, 0x98, 0xCA, 0x96, 0x42, 0x7E, 0x03, 0x5F, - 0xE2, 0x90, 0xBF, 0x82, 0xC9, 0x3D, 0xE0, 0x5C, - 0xFA, 0x3E, 0x41, 0x11, 0x79, 0x58, 0x24, 0x2C, - 0xC0, 0x28, 0x5D, 0xA3, 0xDE, 0x67, 0xFF, 0xA4, - 0x63, 0xB1, 0x22, 0x04, 0xFD, 0x70, 0x39, 0x46, - 0xAA, 0x0A, 0x34, 0x6C, 0xD7, 0x92, 0xA1, 0x3C, - 0x19, 0xD5, 0xFC, 0xAD, 0x85, 0x07, 0x00, 0x23, - 0xF8, 0x69, 0x56, 0x53, 0x55, 0x7A, 0xB8, 0xC8, - 0xDA, 0xCE, 0xF3, 0x5B, 0x49, 0xE1, 0xBE, 0xEC, - 0x1A, 0x88, 0x02, 0xBD, 0xF7, 0x1D, 0x64, 0xA0, - 0x4F, 0xD9, 0xE3, 0x95, 0xC6, 0x48, 0x2B, 0xED, - 0x9A, 0x9E, 0x26, 0x6E, 0xD1, 0x94, 0xB9, 0x93, - 0xDD, 0xF6, 0xA6, 0xFB, 0xC2, 0xB6, 0x0C, 0xE9, - 0x77, 0xF9, 0xCD, 0x08, 0xEE, 0x3F, 0xE6, 0x75, - 0xD6, 0x84, 0x76, 0x8C, 0xF0, 0xAE, 0xD2, 0x78, - 0x2F, 0x4B, 0x16, 0x4C, 0x27, 0x81, 0x6D, 0x99, - 0x38, 0xD3, 0x54, 0x62, 0x74, 0x20, 0x60, 0xC3, - 0x7C, 0x8D, 0x72, 0x0B, 0x52, 0xE8, 0xA7, 0x3A, - 0x59, 0xC4, 0x9F, 0xD0, 0x66, 0x7B, 0x33, 0xB5 }; - -static const unsigned char table_36[256] = { - 0xDB, 0x6F, 0xFE, 0xB3, 0x5C, 0x1F, 0xB8, 0xBF, - 0xA3, 0x71, 0x11, 0x56, 0x90, 0xE2, 0x63, 0x18, - 0x83, 0x51, 0x21, 0xEB, 0x66, 0x08, 0xA6, 0xA5, - 0x1C, 0xF5, 0x14, 0x24, 0x41, 0x33, 0xA7, 0xB5, - 0xC7, 0x79, 0x57, 0x50, 0x85, 0xE1, 0x6D, 0xF7, - 0x0E, 0xDE, 0x67, 0xAB, 0xA1, 0x0B, 0xD9, 0x4A, - 0xCA, 0x36, 0xEA, 0xDA, 0x16, 0xEF, 0x9F, 0x0A, - 0x09, 0x9A, 0x1D, 0xC5, 0xD7, 0x5F, 0x19, 0xDC, - 0x15, 0x06, 0xE8, 0x94, 0x0C, 0x0D, 0xC9, 0x7C, - 0xD6, 0x62, 0xBB, 0x49, 0xF9, 0x61, 0x07, 0x9B, - 0x28, 0xC3, 0x9E, 0xF4, 0x38, 0x78, 0x20, 0x03, - 0xA2, 0x7F, 0xC2, 0x9D, 0x5E, 0x65, 0x52, 0x17, - 0x2E, 0x1B, 0xB0, 0x42, 0xBC, 0xFD, 0xF1, 0xD2, - 0xF6, 0x60, 0xD3, 0x29, 0x97, 0x3D, 0x0F, 0xB1, - 0x2F, 0x22, 0xDD, 0x80, 0x32, 0xF8, 0xAD, 0x70, - 0xB9, 0x8F, 0x37, 0xCE, 0x46, 0x58, 0xB7, 0x30, - 0xED, 0x7A, 0xE9, 0xC0, 0x7D, 0x13, 0x64, 0x23, - 0x4E, 0xC8, 0xF0, 0xCC, 0x3B, 0x45, 0x68, 0x8D, - 0xBE, 0x8B, 0xD8, 0x43, 0x02, 0x27, 0xE4, 0xAA, - 0x10, 0xF2, 0x59, 0x72, 0x40, 0x26, 0x69, 0xE5, - 0x05, 0x84, 0x4F, 0xE0, 0x6B, 0xC1, 0xAC, 0x4C, - 0xFB, 0x31, 0x77, 0x8E, 0xD4, 0x12, 0xA9, 0xB4, - 0xEC, 0x00, 0x76, 0x1E, 0x25, 0xAE, 0xE7, 0x3C, - 0x35, 0x93, 0x9C, 0xC4, 0xFC, 0x2D, 0x91, 0x04, - 0xAF, 0x53, 0x3F, 0xE6, 0xA4, 0xD0, 0x1A, 0xDF, - 0x3A, 0x55, 0x99, 0x01, 0xCB, 0x6C, 0x82, 0x3E, - 0x5D, 0xA8, 0x88, 0x54, 0x5B, 0x95, 0xCD, 0x8C, - 0x81, 0x34, 0xD1, 0x39, 0xFF, 0xEE, 0xFA, 0x8A, - 0x6E, 0x86, 0x92, 0x89, 0xF3, 0x6A, 0xBA, 0x2C, - 0xD5, 0x44, 0xC6, 0x96, 0xBD, 0xB2, 0x2B, 0x87, - 0x74, 0xA0, 0x73, 0x5A, 0x2A, 0x98, 0x75, 0x47, - 0x4B, 0xB6, 0x7B, 0x4D, 0xCF, 0x7E, 0x48, 0xE3 }; - -static const unsigned char table_37[256] = { - 0x1F, 0xD6, 0xB1, 0xB3, 0x40, 0xAD, 0xDE, 0xB7, - 0x19, 0xB4, 0xE7, 0x0B, 0x9C, 0x2D, 0xE0, 0xF5, - 0xCF, 0x2C, 0x30, 0x65, 0x2F, 0xCD, 0x02, 0x91, - 0xCE, 0x2B, 0xBF, 0x78, 0xE6, 0xFA, 0x51, 0x48, - 0xFB, 0x4D, 0xBE, 0x71, 0x1A, 0x56, 0xFD, 0x81, - 0x33, 0x75, 0x89, 0x96, 0x37, 0x82, 0x9E, 0x93, - 0x41, 0x18, 0x5B, 0x2E, 0x22, 0x0F, 0xAF, 0x4B, - 0xB9, 0xD5, 0xEE, 0x6C, 0xE4, 0x05, 0xCC, 0x99, - 0xE5, 0x3B, 0x62, 0xBD, 0x7B, 0xAA, 0x4A, 0xE2, - 0x34, 0x43, 0xF7, 0x39, 0xFE, 0x14, 0x1D, 0xE3, - 0xF0, 0xA7, 0x77, 0xDF, 0xA0, 0xD3, 0xAC, 0xD9, - 0xEA, 0x76, 0xDD, 0xA4, 0xC5, 0xC9, 0x61, 0xF3, - 0xA8, 0xB0, 0x35, 0xE8, 0x68, 0xD4, 0x15, 0xF9, - 0x97, 0xED, 0x25, 0x0A, 0x88, 0x8F, 0x06, 0xA3, - 0x16, 0x36, 0x32, 0xA2, 0xC6, 0x64, 0xD7, 0x94, - 0xD2, 0x6D, 0x74, 0xFC, 0x44, 0x27, 0x5C, 0xFF, - 0x60, 0x1E, 0x58, 0x8B, 0x5E, 0xC7, 0x90, 0x17, - 0x63, 0xAE, 0xC3, 0x12, 0x13, 0x84, 0xEC, 0x49, - 0xA5, 0x9B, 0x31, 0x8D, 0xE1, 0x79, 0xF1, 0x00, - 0x28, 0x3D, 0xC2, 0x55, 0x20, 0x52, 0x95, 0x7E, - 0x42, 0x1C, 0x66, 0x92, 0x7D, 0xB6, 0xC4, 0xF4, - 0x80, 0xB2, 0x72, 0x6E, 0x11, 0xF6, 0x0D, 0x5A, - 0xEF, 0x9D, 0x69, 0x9A, 0x45, 0x67, 0x3F, 0xDA, - 0x8E, 0x57, 0x09, 0x7C, 0x38, 0xA6, 0x83, 0x87, - 0x7A, 0x08, 0x4C, 0x5F, 0x85, 0x7F, 0xD0, 0x04, - 0x50, 0xCB, 0xB8, 0x07, 0x24, 0x26, 0x29, 0x46, - 0x01, 0x03, 0xC1, 0xD8, 0xDC, 0x0E, 0x3C, 0x4F, - 0x53, 0x4E, 0xB5, 0xF8, 0xC0, 0x8A, 0xF2, 0xBB, - 0xE9, 0x5D, 0x2A, 0xBA, 0x0C, 0x1B, 0x3A, 0xA9, - 0x21, 0x6A, 0x70, 0xBC, 0xEB, 0xA1, 0x54, 0x10, - 0x98, 0x9F, 0x23, 0xD1, 0x6B, 0x59, 0x3E, 0xCA, - 0x73, 0xC8, 0x86, 0x47, 0xDB, 0xAB, 0x6F, 0x8C }; - -static const unsigned char table_38[256] = { - 0xAA, 0x8D, 0x37, 0x94, 0x99, 0xDD, 0x70, 0x77, - 0x78, 0xC9, 0x0F, 0xFA, 0xE2, 0x05, 0xC2, 0x16, - 0x02, 0x4D, 0x44, 0x65, 0xAC, 0xB0, 0x39, 0xF8, - 0x06, 0x60, 0xD8, 0xE1, 0x19, 0xB4, 0x36, 0x20, - 0x59, 0x1D, 0xAD, 0xE4, 0xE8, 0xFF, 0x9D, 0x0D, - 0x51, 0x28, 0xE7, 0x8C, 0x0E, 0x97, 0xE3, 0xAE, - 0x6A, 0x27, 0x98, 0xDB, 0x26, 0xF6, 0xEC, 0xC6, - 0xC0, 0xBD, 0x68, 0x61, 0x83, 0x86, 0xE0, 0x2C, - 0xEE, 0x47, 0xF9, 0x5F, 0x6D, 0xBA, 0xE9, 0x72, - 0x8A, 0xBB, 0x08, 0x29, 0xAF, 0x1C, 0xD3, 0x5D, - 0xF7, 0x87, 0x6F, 0x9A, 0x2F, 0x11, 0xD9, 0x90, - 0x66, 0x8E, 0xEB, 0xB1, 0x2E, 0xEA, 0xA3, 0x55, - 0x2B, 0xCC, 0x4C, 0x4B, 0x48, 0x71, 0x3B, 0xFC, - 0xA4, 0x45, 0x0A, 0x8F, 0x7A, 0x13, 0x01, 0x22, - 0xC1, 0xF1, 0xA2, 0xB8, 0x7C, 0xF4, 0xB3, 0xB7, - 0x5B, 0xE5, 0x07, 0x50, 0x7E, 0x18, 0xEF, 0x91, - 0x5C, 0x15, 0x69, 0xBE, 0x0C, 0x93, 0x56, 0x35, - 0x7B, 0xCF, 0x34, 0x74, 0x3E, 0x5E, 0x31, 0x21, - 0x12, 0x63, 0x7F, 0x2A, 0x9B, 0xD4, 0x6B, 0xBC, - 0x33, 0x62, 0x30, 0x75, 0x17, 0x23, 0xB2, 0xF0, - 0x57, 0x67, 0x95, 0x3D, 0xCD, 0x10, 0xE6, 0xC8, - 0x8B, 0xA9, 0x73, 0xC4, 0x43, 0xBF, 0xA7, 0xCA, - 0xB5, 0xD5, 0xD6, 0x3F, 0x1A, 0x7D, 0x82, 0xA8, - 0x40, 0x64, 0xAB, 0x04, 0xC3, 0x1F, 0xA0, 0x5A, - 0x85, 0xF3, 0xDE, 0xFE, 0xDA, 0x1E, 0x81, 0x92, - 0x9C, 0x2D, 0x9F, 0x32, 0xB9, 0xA1, 0x96, 0xD0, - 0x4F, 0x38, 0x80, 0xCB, 0x6C, 0x14, 0x84, 0x1B, - 0xD7, 0xC5, 0xED, 0xD2, 0x3A, 0x0B, 0x88, 0xFD, - 0xDC, 0x49, 0x9E, 0xF5, 0xF2, 0x52, 0xA6, 0x24, - 0xC7, 0xB6, 0x03, 0x3C, 0xD1, 0x54, 0x41, 0xDF, - 0x89, 0x58, 0x79, 0xFB, 0x6E, 0xA5, 0x42, 0x25, - 0x09, 0x76, 0x00, 0x46, 0x4E, 0x53, 0xCE, 0x4A }; - -static const unsigned char table_39[32] = { - 0x12, 0x18, 0x0E, 0x08, 0x16, 0x05, 0x06, 0x00, - 0x11, 0x17, 0x15, 0x1B, 0x14, 0x01, 0x1F, 0x19, - 0x04, 0x0D, 0x0A, 0x0F, 0x10, 0x07, 0x1D, 0x03, - 0x0B, 0x13, 0x0C, 0x09, 0x1E, 0x02, 0x1A, 0x1C }; - -static const unsigned char table_40[32] = { - 0x16, 0x02, 0x06, 0x0E, 0x0D, 0x1C, 0x08, 0x0A, - 0x0F, 0x13, 0x0B, 0x18, 0x07, 0x04, 0x14, 0x01, - 0x1B, 0x05, 0x17, 0x1E, 0x11, 0x1A, 0x10, 0x1F, - 0x12, 0x19, 0x1D, 0x03, 0x0C, 0x00, 0x09, 0x15 }; - -static const unsigned char table_41[32] = { - 0x13, 0x18, 0x04, 0x1F, 0x1D, 0x11, 0x03, 0x00, - 0x10, 0x12, 0x06, 0x0A, 0x1C, 0x07, 0x15, 0x0E, - 0x08, 0x05, 0x0C, 0x09, 0x01, 0x02, 0x16, 0x0B, - 0x1A, 0x17, 0x14, 0x1E, 0x0D, 0x0F, 0x19, 0x1B }; - -static const unsigned char table_42[32] = { - 0x00, 0x08, 0x15, 0x1D, 0x05, 0x18, 0x06, 0x07, - 0x1F, 0x01, 0x0B, 0x03, 0x19, 0x13, 0x02, 0x1C, - 0x17, 0x11, 0x0E, 0x1E, 0x0C, 0x0F, 0x09, 0x1A, - 0x1B, 0x16, 0x10, 0x0D, 0x0A, 0x14, 0x12, 0x04 }; - -static const unsigned char table_43[256] = { - 0x34, 0xB7, 0x36, 0x85, 0x5F, 0x93, 0x98, 0x70, - 0x1E, 0x59, 0x83, 0x60, 0x6F, 0xBF, 0xF9, 0xD0, - 0xB3, 0x22, 0x12, 0x38, 0xF5, 0x01, 0xC9, 0x5B, - 0xEF, 0x1D, 0x81, 0x64, 0xFA, 0x8F, 0x7F, 0xBC, - 0x05, 0x08, 0xE0, 0x8B, 0xE8, 0x86, 0x95, 0xCB, - 0xCA, 0x5A, 0xEB, 0x10, 0x92, 0xE2, 0x7E, 0x28, - 0xD9, 0xC7, 0x0D, 0x24, 0xA7, 0x02, 0x0B, 0xF1, - 0x7B, 0xD3, 0xFE, 0x2B, 0x89, 0x0E, 0xAE, 0xAD, - 0xC8, 0x82, 0x79, 0x43, 0x96, 0xDE, 0x0C, 0x9A, - 0x57, 0x84, 0xB4, 0x19, 0xF8, 0xF0, 0xAF, 0xBE, - 0x99, 0x9F, 0x46, 0xE4, 0x31, 0xDF, 0x30, 0x51, - 0xD4, 0xE5, 0xFC, 0x32, 0x04, 0x56, 0x7D, 0x33, - 0xF7, 0x18, 0x23, 0x4E, 0xC2, 0x7C, 0x6C, 0xD2, - 0xB1, 0x9B, 0x40, 0xA2, 0x88, 0x00, 0xA1, 0xAB, - 0xC6, 0x5C, 0x87, 0x3B, 0xD7, 0x27, 0x2E, 0x45, - 0xDA, 0x8E, 0x61, 0x5E, 0xFB, 0x09, 0x5D, 0x6B, - 0xA3, 0x29, 0x4F, 0xAC, 0xD1, 0x77, 0x4A, 0xA9, - 0xC4, 0x7A, 0x15, 0xD8, 0xAA, 0x17, 0xB9, 0x2D, - 0xE7, 0xBD, 0x2C, 0x62, 0x2F, 0xB2, 0xED, 0x3F, - 0x48, 0x26, 0x1B, 0x35, 0x20, 0x72, 0x4D, 0xFF, - 0xBB, 0x78, 0x1F, 0xCC, 0xEC, 0xA8, 0x9D, 0x90, - 0x4B, 0x13, 0xE1, 0xBA, 0xF3, 0x3C, 0x42, 0x65, - 0x14, 0xDD, 0x75, 0xE3, 0x4C, 0x74, 0x94, 0xCD, - 0xF2, 0x66, 0x06, 0xE9, 0x49, 0xB8, 0x71, 0x41, - 0xA0, 0x25, 0x55, 0x47, 0x97, 0x9E, 0x11, 0x54, - 0x1A, 0xB0, 0x3E, 0x37, 0x39, 0x1C, 0x8D, 0x03, - 0x6E, 0xF6, 0x80, 0x6D, 0x8C, 0x9C, 0xB6, 0xCF, - 0xC3, 0x91, 0x63, 0xC0, 0x07, 0x67, 0xE6, 0xF4, - 0xCE, 0x3D, 0xDB, 0x16, 0xFD, 0xEA, 0xD6, 0x68, - 0xD5, 0xA6, 0x0F, 0x58, 0x44, 0x52, 0xB5, 0xDC, - 0x0A, 0x69, 0xC5, 0xA5, 0xC1, 0x8A, 0x2A, 0xEE, - 0x73, 0x76, 0x3A, 0x21, 0x53, 0xA4, 0x50, 0x6A }; - -static const unsigned char table_44[32] = { - 0x1A, 0x0E, 0x0A, 0x17, 0x1F, 0x08, 0x10, 0x14, - 0x0C, 0x0F, 0x09, 0x1C, 0x06, 0x18, 0x1E, 0x12, - 0x15, 0x00, 0x11, 0x13, 0x0D, 0x01, 0x0B, 0x03, - 0x16, 0x19, 0x05, 0x1D, 0x02, 0x07, 0x04, 0x1B }; - -static const unsigned char table_45[256] = { - 0x5E, 0xD6, 0xE2, 0x54, 0x35, 0xC2, 0xAC, 0x9D, - 0x92, 0x64, 0x57, 0x65, 0xC8, 0xAE, 0x21, 0xA9, - 0x89, 0x48, 0x12, 0x59, 0xEC, 0xEF, 0x9F, 0xF7, - 0x19, 0x03, 0x83, 0xC0, 0x79, 0x5D, 0x4A, 0x10, - 0x8C, 0xEB, 0xFF, 0xB5, 0x3B, 0x51, 0x2D, 0xD1, - 0x6B, 0xC5, 0x24, 0x5C, 0xE6, 0x11, 0x94, 0x3F, - 0xD0, 0x2F, 0x0E, 0x95, 0x3C, 0xFE, 0x5B, 0x20, - 0x23, 0xE0, 0x91, 0x6F, 0xCA, 0x56, 0x0C, 0x73, - 0xDA, 0x67, 0x37, 0xA3, 0xA5, 0x70, 0x93, 0x1C, - 0x18, 0xD9, 0x42, 0x5F, 0x44, 0xF0, 0xF2, 0x14, - 0x58, 0x8A, 0x1D, 0x40, 0x4E, 0x0B, 0x74, 0x84, - 0x52, 0xCB, 0x60, 0xED, 0xAD, 0x66, 0x43, 0x6C, - 0x81, 0xA1, 0x27, 0xB9, 0xBA, 0x4D, 0xF5, 0x04, - 0xB8, 0x96, 0xA6, 0xA2, 0x7D, 0xD4, 0xEA, 0x45, - 0x4F, 0x55, 0xD3, 0x3E, 0x8E, 0x4C, 0xBF, 0x8B, - 0x9A, 0x06, 0x7A, 0xF4, 0x02, 0x88, 0x80, 0x22, - 0xF3, 0xBD, 0x78, 0xEE, 0xAF, 0xF8, 0x15, 0x09, - 0x0F, 0xB0, 0xDD, 0x99, 0x72, 0xE7, 0x90, 0xE1, - 0x25, 0x62, 0x8D, 0x9C, 0x13, 0x08, 0xC9, 0x28, - 0x2A, 0x47, 0x69, 0xDE, 0x77, 0x87, 0xBB, 0xE9, - 0xAA, 0x33, 0x05, 0x29, 0x34, 0x97, 0xFD, 0xA0, - 0x1E, 0xFC, 0xBE, 0xB1, 0x71, 0x9B, 0x50, 0xDC, - 0xB7, 0x31, 0x63, 0x3A, 0xDF, 0xC3, 0x1B, 0x7C, - 0x0A, 0xD7, 0xF6, 0xDB, 0x49, 0x53, 0x7F, 0xD2, - 0x30, 0xA4, 0xB3, 0x6E, 0xB2, 0x6D, 0xCD, 0x7E, - 0x26, 0xE8, 0x76, 0xCF, 0xE5, 0xCE, 0x16, 0xF1, - 0xC6, 0x68, 0x36, 0x46, 0x1F, 0x38, 0x0D, 0x41, - 0x17, 0xBC, 0x86, 0x9E, 0x6A, 0x7B, 0xB4, 0x01, - 0xCC, 0x2C, 0xE3, 0x5A, 0xB6, 0xFA, 0x00, 0x75, - 0x39, 0xA7, 0xC1, 0xD5, 0x98, 0xAB, 0x1A, 0x85, - 0xD8, 0xE4, 0xC4, 0xA8, 0x4B, 0x61, 0x2E, 0x3D, - 0xF9, 0x2B, 0x32, 0x8F, 0xFB, 0xC7, 0x07, 0x82 }; - -static const unsigned char table_46[256] = { - 0x85, 0x78, 0xFE, 0x6C, 0x61, 0xA0, 0x71, 0xCC, - 0x45, 0x54, 0x7A, 0xE6, 0x82, 0x1D, 0xA6, 0x02, - 0x47, 0xD0, 0x23, 0x55, 0x62, 0xFA, 0x76, 0x3E, - 0xE3, 0x66, 0x74, 0x10, 0x5D, 0x49, 0x69, 0x0B, - 0x75, 0x12, 0x8D, 0x9F, 0xEE, 0x93, 0x50, 0x70, - 0x32, 0xBC, 0x1E, 0xD3, 0xEF, 0x7B, 0xB4, 0x92, - 0xFD, 0x16, 0xC2, 0xD8, 0xDE, 0x68, 0xD1, 0x64, - 0xC3, 0xA3, 0xB3, 0xC9, 0x08, 0xFB, 0x84, 0xC1, - 0x28, 0x53, 0xCF, 0xD2, 0x35, 0xD7, 0x4A, 0x01, - 0x44, 0xA4, 0x07, 0xAC, 0x98, 0xF1, 0xB2, 0x9A, - 0x94, 0x2D, 0xD4, 0x34, 0x27, 0x60, 0x1A, 0xB9, - 0xAF, 0x89, 0xEB, 0x8F, 0x6A, 0x13, 0x05, 0xF0, - 0x77, 0x5F, 0x4F, 0x58, 0x2C, 0xE7, 0xCE, 0xED, - 0xC0, 0x0D, 0x3A, 0xA7, 0xE2, 0x38, 0x5B, 0xE9, - 0x3D, 0xF2, 0xDF, 0x86, 0xE0, 0x72, 0xF7, 0x88, - 0xAD, 0xB7, 0x11, 0xDB, 0x73, 0x87, 0xC5, 0x22, - 0xE1, 0x5C, 0xD6, 0x57, 0x7E, 0x7D, 0xA2, 0xF9, - 0xF5, 0x9C, 0x25, 0x6F, 0x26, 0x51, 0xC8, 0x80, - 0x2B, 0xA8, 0x19, 0xD9, 0x65, 0xCD, 0x97, 0xEA, - 0xFF, 0x5E, 0x24, 0x3B, 0x4D, 0xB1, 0x1C, 0x79, - 0x39, 0x6B, 0xA5, 0x2A, 0x09, 0xCA, 0x04, 0xEC, - 0xBA, 0x18, 0x31, 0x46, 0x20, 0xBE, 0x1F, 0x3C, - 0x6D, 0xAA, 0xF6, 0xDD, 0xF4, 0x96, 0x03, 0x0A, - 0x9E, 0x83, 0xA1, 0x9D, 0xD5, 0xB0, 0x17, 0xBF, - 0x56, 0xAB, 0xAE, 0x1B, 0x52, 0xC6, 0x81, 0x4B, - 0xDC, 0x90, 0x5A, 0x9B, 0xB6, 0x0F, 0xF3, 0x67, - 0x30, 0x63, 0x7C, 0x40, 0x0E, 0x7F, 0x95, 0x36, - 0xC4, 0x4E, 0x43, 0xCB, 0x15, 0xB8, 0x00, 0x91, - 0x8A, 0x4C, 0x8E, 0x14, 0x06, 0x6E, 0xA9, 0x2E, - 0x3F, 0x48, 0x2F, 0x0C, 0xB5, 0x21, 0xBB, 0xDA, - 0x8B, 0x42, 0x29, 0x8C, 0x33, 0x59, 0xE8, 0xF8, - 0xC7, 0xE4, 0x37, 0xE5, 0xFC, 0xBD, 0x99, 0x41 }; - -static const unsigned char table_47[32] = { - 0x18, 0x1D, 0x16, 0x10, 0x11, 0x04, 0x1E, 0x08, - 0x19, 0x0E, 0x0F, 0x02, 0x14, 0x1C, 0x07, 0x17, - 0x0D, 0x09, 0x12, 0x1A, 0x05, 0x01, 0x0B, 0x0A, - 0x13, 0x15, 0x0C, 0x00, 0x06, 0x1F, 0x03, 0x1B }; - -static const unsigned char table_48[32] = { - 0x13, 0x08, 0x15, 0x01, 0x17, 0x10, 0x0F, 0x1F, - 0x1D, 0x0D, 0x12, 0x03, 0x06, 0x0A, 0x1C, 0x19, - 0x1A, 0x04, 0x1B, 0x02, 0x16, 0x1E, 0x11, 0x00, - 0x14, 0x09, 0x0C, 0x18, 0x05, 0x07, 0x0E, 0x0B }; - -static const unsigned char table_49[32] = { - 0x1F, 0x0F, 0x19, 0x07, 0x18, 0x05, 0x1E, 0x1D, - 0x15, 0x08, 0x17, 0x10, 0x0A, 0x0E, 0x0C, 0x1B, - 0x02, 0x13, 0x03, 0x0D, 0x04, 0x1A, 0x06, 0x09, - 0x12, 0x1C, 0x0B, 0x16, 0x14, 0x01, 0x11, 0x00 }; - -static const unsigned char table_50[32] = { - 0x16, 0x18, 0x1C, 0x0E, 0x12, 0x00, 0x04, 0x1B, - 0x1F, 0x13, 0x17, 0x0A, 0x1E, 0x03, 0x0C, 0x01, - 0x0F, 0x10, 0x02, 0x08, 0x14, 0x09, 0x19, 0x15, - 0x06, 0x0D, 0x0B, 0x1D, 0x05, 0x07, 0x11, 0x1A }; - -static const unsigned char table_51[32] = { - 0x1C, 0x0D, 0x1B, 0x07, 0x17, 0x0E, 0x06, 0x01, - 0x12, 0x19, 0x03, 0x0B, 0x10, 0x08, 0x00, 0x1E, - 0x0A, 0x04, 0x1A, 0x1D, 0x0C, 0x18, 0x02, 0x13, - 0x0F, 0x11, 0x05, 0x09, 0x15, 0x16, 0x1F, 0x14 }; - -static const unsigned char table_52[256] = { - 0x34, 0x0B, 0x47, 0xA3, 0x56, 0x30, 0x73, 0xD4, - 0x4B, 0xF6, 0xA6, 0x80, 0x22, 0x95, 0xA5, 0xBB, - 0xFE, 0xCD, 0x27, 0x88, 0x87, 0x18, 0x86, 0x6E, - 0xB9, 0x07, 0x37, 0x52, 0x0A, 0x28, 0x2C, 0xC4, - 0x75, 0xA1, 0x29, 0x54, 0x84, 0x08, 0x72, 0x51, - 0xDD, 0xF1, 0x4E, 0x1A, 0x90, 0x57, 0x20, 0xAD, - 0x68, 0x61, 0xAF, 0x50, 0x6B, 0x1B, 0x71, 0xEB, - 0x63, 0xC9, 0xB0, 0x58, 0x26, 0x40, 0xC7, 0xD9, - 0x70, 0xA2, 0x9A, 0x09, 0x3F, 0x92, 0x0D, 0x8C, - 0xC1, 0x96, 0x9F, 0x77, 0x4D, 0x5A, 0xEA, 0x11, - 0xD7, 0xF3, 0x33, 0x93, 0x10, 0xF2, 0x9D, 0x83, - 0xFF, 0x7E, 0xD2, 0x41, 0x24, 0xB4, 0x8D, 0x5C, - 0xCF, 0xEF, 0xE9, 0x64, 0x76, 0xD1, 0xDE, 0xE4, - 0x91, 0x35, 0x89, 0x19, 0x02, 0x0E, 0xF4, 0x2A, - 0x0F, 0xE1, 0xA8, 0x2D, 0x21, 0x23, 0xAA, 0x7C, - 0x78, 0x45, 0xA9, 0xDC, 0x06, 0xF9, 0xDF, 0xF7, - 0x03, 0xAB, 0xB5, 0x1C, 0x36, 0x7B, 0x97, 0xFA, - 0xE5, 0x3B, 0x2F, 0x1F, 0x9E, 0xED, 0xA7, 0x55, - 0x42, 0x6F, 0x1E, 0xB7, 0xE6, 0xFB, 0x12, 0xD5, - 0x99, 0xC6, 0x66, 0x4A, 0xE8, 0x48, 0x60, 0xB1, - 0x05, 0x53, 0x8A, 0xB6, 0x25, 0x8F, 0xA4, 0xD8, - 0x9C, 0xC0, 0x59, 0x3A, 0xBD, 0xDB, 0x44, 0x5E, - 0xE3, 0xDA, 0x1D, 0x32, 0xF5, 0xBA, 0x43, 0x13, - 0x82, 0x4C, 0xE7, 0x17, 0x15, 0x3E, 0x69, 0x2E, - 0xC3, 0xF0, 0x5F, 0xFD, 0xCE, 0xD3, 0xCA, 0x39, - 0xD6, 0x79, 0x3D, 0xC8, 0x67, 0x8B, 0x31, 0x4F, - 0xB3, 0xBC, 0x65, 0x00, 0x7A, 0x98, 0xC5, 0x6C, - 0x2B, 0x94, 0x6D, 0x74, 0x14, 0xAC, 0xCC, 0xA0, - 0x5B, 0xF8, 0xCB, 0x7F, 0xB2, 0xEC, 0xBF, 0x3C, - 0xE0, 0xAE, 0xFC, 0x62, 0x04, 0x8E, 0x85, 0x49, - 0x9B, 0xC2, 0x38, 0xD0, 0xEE, 0x81, 0x46, 0xE2, - 0x01, 0x0C, 0x5D, 0x7D, 0xB8, 0xBE, 0x6A, 0x16 }; - -static const unsigned char table_53[256] = { - 0xE3, 0xF4, 0x8D, 0x72, 0x45, 0x32, 0x9D, 0xCE, - 0x1F, 0x6B, 0xBC, 0xDC, 0xF1, 0xEC, 0x5A, 0x3B, - 0xA5, 0xA2, 0x2B, 0xDD, 0x8A, 0xA3, 0x76, 0xE4, - 0xAF, 0xE9, 0xE1, 0x21, 0xDB, 0x9F, 0x19, 0xD3, - 0x26, 0x80, 0x15, 0xC2, 0x46, 0xB8, 0x17, 0x56, - 0x99, 0x81, 0x08, 0xD7, 0xEF, 0x8E, 0x04, 0x05, - 0x97, 0x2F, 0x78, 0xAD, 0xA1, 0x52, 0x36, 0x58, - 0x53, 0x68, 0x22, 0x70, 0x0B, 0x79, 0xE6, 0xFA, - 0xC3, 0x91, 0xE2, 0xF7, 0xF6, 0x75, 0x2D, 0x0A, - 0x90, 0xEB, 0xA6, 0x35, 0xA7, 0x10, 0xB5, 0xFB, - 0xE7, 0xAA, 0x1E, 0x43, 0xBB, 0x3C, 0x65, 0x25, - 0x2C, 0x59, 0x62, 0x2A, 0xF9, 0x4B, 0x95, 0x5E, - 0x20, 0x11, 0x42, 0x27, 0x44, 0xE8, 0x14, 0x6F, - 0xD1, 0xD8, 0x00, 0x3A, 0x5B, 0x18, 0x89, 0x02, - 0x61, 0xD6, 0xC5, 0x98, 0xD0, 0x5F, 0x34, 0x29, - 0xFD, 0x31, 0x1A, 0xCD, 0x0F, 0x9E, 0xCA, 0x7B, - 0xEA, 0x93, 0x71, 0x5C, 0x0E, 0x57, 0x33, 0xC4, - 0x37, 0xF5, 0x83, 0xB0, 0xDF, 0x49, 0x74, 0x54, - 0x1D, 0x24, 0xB9, 0x16, 0x1C, 0x28, 0xDE, 0x4A, - 0xF0, 0x01, 0x86, 0x82, 0xCC, 0x12, 0x8C, 0x06, - 0x30, 0xA8, 0x7A, 0x73, 0x66, 0x7C, 0xC6, 0xB6, - 0xF2, 0x13, 0xBF, 0x40, 0x85, 0x77, 0x09, 0x3D, - 0x67, 0x63, 0x3F, 0x7F, 0xF3, 0x87, 0x8F, 0xFF, - 0x92, 0xC7, 0x4C, 0x23, 0xBA, 0xCB, 0xB1, 0xED, - 0x0C, 0x60, 0x47, 0xFE, 0x38, 0x5D, 0xCF, 0x8B, - 0x4D, 0xA9, 0x2E, 0xE5, 0xA4, 0x1B, 0x88, 0x3E, - 0x7D, 0xF8, 0xC0, 0xD5, 0x6D, 0x6C, 0x48, 0xAC, - 0x9B, 0x51, 0x7E, 0x6E, 0x50, 0x0D, 0x9A, 0xB3, - 0xEE, 0x07, 0x4F, 0x69, 0x9C, 0x03, 0xD9, 0xD4, - 0xB4, 0xD2, 0xAE, 0x4E, 0x55, 0xB7, 0xC9, 0x41, - 0x39, 0x6A, 0xC8, 0xA0, 0xB2, 0xC1, 0x84, 0xFC, - 0xAB, 0x64, 0xE0, 0xBE, 0xDA, 0xBD, 0x96, 0x94 }; - -static const unsigned char table_54[32] = { - 0x01, 0x02, 0x1D, 0x10, 0x0E, 0x11, 0x08, 0x14, - 0x12, 0x09, 0x15, 0x17, 0x16, 0x04, 0x06, 0x1B, - 0x07, 0x1A, 0x18, 0x13, 0x0A, 0x1E, 0x1C, 0x1F, - 0x0C, 0x0B, 0x0D, 0x05, 0x0F, 0x00, 0x19, 0x03 }; - -static const unsigned char table_55[32] = { - 0x01, 0x12, 0x13, 0x09, 0x0B, 0x19, 0x03, 0x0E, - 0x02, 0x1F, 0x1D, 0x1B, 0x1E, 0x11, 0x06, 0x05, - 0x00, 0x16, 0x07, 0x0C, 0x15, 0x0D, 0x1A, 0x08, - 0x18, 0x10, 0x0F, 0x17, 0x1C, 0x0A, 0x04, 0x14 }; - -static const unsigned char table_56[256] = { - 0xEF, 0x06, 0x5F, 0x11, 0x4B, 0x60, 0x13, 0xBB, - 0x79, 0xD7, 0xE4, 0x6D, 0x22, 0xB4, 0x15, 0x50, - 0x29, 0x17, 0xD2, 0xE3, 0x37, 0x8C, 0x46, 0x7C, - 0xA2, 0xF5, 0x65, 0x16, 0xCB, 0x04, 0x3E, 0xDF, - 0x8E, 0xDE, 0x53, 0xF1, 0xF4, 0xD1, 0x3B, 0xEE, - 0x9A, 0x09, 0x9B, 0x6C, 0xF6, 0xCC, 0xFB, 0x40, - 0xE0, 0xFD, 0x2B, 0x1D, 0x73, 0x18, 0xCD, 0x31, - 0x3F, 0x9E, 0xAD, 0xC9, 0x43, 0x4E, 0x99, 0x3A, - 0x8F, 0x92, 0x85, 0xFC, 0x12, 0x41, 0x20, 0xE8, - 0x2A, 0xC0, 0x1C, 0x38, 0x74, 0x0B, 0xF3, 0x05, - 0x0D, 0x1F, 0x94, 0x9C, 0xAC, 0x00, 0x59, 0x0C, - 0xB3, 0x8D, 0xA8, 0x75, 0xB7, 0x68, 0x2F, 0x27, - 0x6F, 0x69, 0x76, 0xD8, 0xEC, 0xA5, 0xB2, 0x6A, - 0x19, 0x72, 0x1A, 0xB6, 0xE5, 0x77, 0xC6, 0x44, - 0x9D, 0xCA, 0x82, 0x35, 0x36, 0x5E, 0xA9, 0x25, - 0xFA, 0x5C, 0x24, 0x30, 0x39, 0x0E, 0x2C, 0x7D, - 0xE6, 0x88, 0xA0, 0x63, 0xB8, 0x6B, 0x01, 0xDD, - 0xDA, 0x9F, 0x45, 0x83, 0xE2, 0x7F, 0x1B, 0x56, - 0xAF, 0x14, 0xC3, 0x49, 0xBF, 0x78, 0x70, 0x58, - 0x23, 0xA3, 0xBD, 0x34, 0x47, 0x2D, 0x0A, 0xD4, - 0x33, 0x03, 0x1E, 0xC1, 0x87, 0xAE, 0x3C, 0x95, - 0xB0, 0x42, 0x91, 0xB9, 0x5A, 0x61, 0xAA, 0xCF, - 0xF2, 0x51, 0xA6, 0xF8, 0xDC, 0x71, 0xAB, 0x48, - 0x66, 0x90, 0x97, 0xC4, 0x08, 0xF9, 0xD0, 0x7B, - 0xDB, 0xBA, 0x8B, 0xC2, 0xC5, 0x2E, 0xF7, 0x5B, - 0xFF, 0x21, 0x81, 0x54, 0xD3, 0x62, 0x57, 0x4C, - 0x6E, 0x02, 0x98, 0xFE, 0x7E, 0xE7, 0xBC, 0x07, - 0x28, 0x5D, 0x86, 0xCE, 0xEA, 0x84, 0xF0, 0xE1, - 0x93, 0x80, 0xE9, 0xC7, 0x4A, 0xED, 0xB1, 0x26, - 0x89, 0x3D, 0x4F, 0xA7, 0xA1, 0xD6, 0xB5, 0x4D, - 0x67, 0xA4, 0x55, 0x10, 0x0F, 0xD9, 0x52, 0x32, - 0x96, 0xD5, 0xEB, 0x64, 0x8A, 0xC8, 0x7A, 0xBE }; - -static const unsigned char table_57[256] = { - 0xD1, 0x9B, 0x15, 0x06, 0xB4, 0xF6, 0x97, 0xF0, - 0xC6, 0x5B, 0x88, 0x12, 0x25, 0xFA, 0x7B, 0x79, - 0xD6, 0xAB, 0xDC, 0x47, 0x85, 0x61, 0x67, 0x0B, - 0xF3, 0x20, 0x44, 0x53, 0x2A, 0x3B, 0x2D, 0xE8, - 0x17, 0x71, 0xC3, 0xB7, 0x7F, 0x35, 0xEB, 0x10, - 0x03, 0x0D, 0x60, 0x96, 0x27, 0xBB, 0x39, 0x50, - 0x95, 0x55, 0xCC, 0xD4, 0x2F, 0x51, 0xB3, 0x05, - 0xA5, 0xAD, 0xBC, 0x18, 0xE2, 0xAE, 0x07, 0x87, - 0xC4, 0x8D, 0xBE, 0x77, 0xC2, 0x16, 0xFC, 0x33, - 0x4C, 0x4F, 0xE6, 0xA6, 0x57, 0x9F, 0x37, 0x91, - 0xED, 0x4A, 0xF7, 0xB5, 0x52, 0x7C, 0xBD, 0x30, - 0xA0, 0x2C, 0x8C, 0xB0, 0x0C, 0xDA, 0x6F, 0x9E, - 0xEE, 0x43, 0x40, 0x8F, 0x8B, 0x76, 0xA4, 0x68, - 0xFF, 0x6D, 0x58, 0xC9, 0xF9, 0x6E, 0x3F, 0x56, - 0xCA, 0x49, 0xC8, 0x5D, 0xCD, 0xC7, 0x99, 0xEC, - 0x72, 0x38, 0x0A, 0xA9, 0xC5, 0x04, 0x64, 0xBF, - 0xB6, 0x29, 0x80, 0x2E, 0x19, 0x0E, 0x82, 0x45, - 0xBA, 0xD7, 0x1E, 0x86, 0xA8, 0xD8, 0x24, 0xDB, - 0xCF, 0xE1, 0x54, 0xB2, 0x3E, 0x4D, 0x90, 0x42, - 0x5F, 0x59, 0x0F, 0xCE, 0x8E, 0xA2, 0xA7, 0x1D, - 0x22, 0xFD, 0x81, 0x63, 0xE5, 0x6A, 0xE7, 0x93, - 0x41, 0x46, 0x66, 0x89, 0x13, 0xEA, 0x69, 0x1C, - 0x83, 0xF2, 0x08, 0xB8, 0x01, 0x23, 0x26, 0xFB, - 0x78, 0xAA, 0x31, 0x11, 0x1B, 0x98, 0xDD, 0xAC, - 0xB9, 0xFE, 0x94, 0x74, 0xAF, 0x32, 0xD0, 0x5A, - 0xA1, 0xF4, 0x6B, 0x8A, 0xE3, 0x65, 0xDE, 0xCB, - 0x73, 0x3D, 0xA3, 0x7E, 0xDF, 0xD2, 0x6C, 0x7A, - 0x36, 0xD9, 0x62, 0x4B, 0xEF, 0xC1, 0x1F, 0x00, - 0x34, 0xB1, 0xF8, 0xE4, 0xD5, 0x09, 0x1A, 0x9A, - 0x70, 0x48, 0x9D, 0xF1, 0xE0, 0x9C, 0xD3, 0x5C, - 0x75, 0x02, 0x2B, 0x92, 0x21, 0x7D, 0xF5, 0x5E, - 0x4E, 0x3C, 0x84, 0x14, 0x28, 0x3A, 0xE9, 0xC0 }; - -static const unsigned char table_58[256] = { - 0xE9, 0x81, 0x60, 0xA7, 0x18, 0xA0, 0x0F, 0x55, - 0x2B, 0x52, 0xE0, 0x8B, 0x9D, 0x85, 0xD2, 0xA3, - 0x3F, 0x6E, 0xB1, 0xAF, 0xE3, 0x36, 0xE2, 0x19, - 0x56, 0xB0, 0x09, 0xB5, 0x79, 0x43, 0xE1, 0x06, - 0x45, 0xB6, 0xC0, 0x22, 0xEE, 0x41, 0xEC, 0x01, - 0x66, 0x2D, 0x87, 0x38, 0x16, 0x37, 0xFA, 0x29, - 0x96, 0xA4, 0xC3, 0x23, 0x59, 0x7E, 0x92, 0x78, - 0x10, 0x2A, 0x4C, 0x0E, 0x9B, 0x4A, 0x35, 0xF4, - 0x42, 0x0C, 0xD8, 0xD7, 0x24, 0x2C, 0xDD, 0x8E, - 0x5B, 0xF5, 0x33, 0x48, 0xEF, 0xDE, 0x4B, 0xBC, - 0x51, 0xAB, 0x7C, 0xE4, 0x63, 0x70, 0x9A, 0xAC, - 0x54, 0x1D, 0x25, 0xC5, 0xEA, 0xB3, 0x05, 0xF7, - 0xC1, 0x1F, 0xE8, 0x97, 0xBB, 0x32, 0x6D, 0xC7, - 0x28, 0x61, 0xDB, 0x4D, 0x77, 0x72, 0x65, 0x8C, - 0x80, 0x3A, 0x76, 0x47, 0xA8, 0x03, 0x04, 0x12, - 0xCE, 0xA9, 0x75, 0x3C, 0x49, 0xF8, 0x64, 0xDF, - 0x57, 0xA2, 0x69, 0x44, 0xAD, 0x3E, 0x4F, 0x0B, - 0x74, 0x67, 0xC9, 0x1A, 0x17, 0xAA, 0x02, 0x6F, - 0xDA, 0xF2, 0xC6, 0x27, 0x53, 0xD6, 0xFD, 0xCA, - 0x8D, 0x93, 0x89, 0xD5, 0x6B, 0x4E, 0x90, 0x82, - 0x30, 0xE7, 0xC4, 0xD9, 0x8A, 0x7F, 0xB4, 0xFC, - 0xCF, 0xA1, 0xAE, 0x1C, 0x39, 0x1B, 0x7B, 0x5E, - 0x88, 0x7D, 0xD3, 0x71, 0x2E, 0x98, 0x13, 0x8F, - 0xCC, 0x84, 0x73, 0xCD, 0x21, 0x0D, 0x5C, 0xA5, - 0x3D, 0x9E, 0x99, 0xC2, 0xF3, 0x34, 0x14, 0x62, - 0x46, 0x0A, 0x07, 0x08, 0xFF, 0xFB, 0xB7, 0xBF, - 0x5D, 0x91, 0xB8, 0x83, 0xBE, 0x94, 0xBA, 0xF9, - 0xEB, 0xE5, 0xCB, 0x95, 0x40, 0x31, 0xE6, 0x86, - 0xD4, 0xFE, 0xD0, 0x7A, 0x26, 0xB9, 0xDC, 0x2F, - 0xBD, 0xF0, 0x5F, 0x00, 0x9C, 0x6A, 0x5A, 0x3B, - 0xF1, 0xC8, 0x9F, 0xED, 0x50, 0x20, 0x15, 0x11, - 0x68, 0x1E, 0xF6, 0xA6, 0x6C, 0xB2, 0xD1, 0x58 }; - -static const unsigned char table_59[256] = { - 0x4C, 0x85, 0x2B, 0x14, 0xCC, 0x4D, 0x5F, 0xD7, - 0xCE, 0x28, 0xC5, 0x0B, 0xA1, 0x99, 0x08, 0xDE, - 0x42, 0xD1, 0x82, 0x5C, 0xC9, 0x8F, 0x72, 0x12, - 0xCB, 0x0D, 0x04, 0xFA, 0xCD, 0xE5, 0x9A, 0x6F, - 0xCF, 0x92, 0xB5, 0x88, 0x87, 0xBF, 0x90, 0x7C, - 0xAC, 0xBE, 0x36, 0x21, 0x7D, 0x7F, 0xC7, 0x9F, - 0x75, 0xBB, 0x61, 0x16, 0x17, 0x63, 0xAE, 0xC4, - 0x23, 0x89, 0xE0, 0x37, 0x91, 0x5E, 0xC8, 0xE4, - 0xFD, 0xD5, 0xA2, 0xC6, 0x5A, 0xEF, 0x9B, 0xD6, - 0x27, 0xEE, 0x60, 0x1C, 0xDF, 0xDA, 0xF1, 0xD2, - 0x1E, 0x01, 0x9D, 0x44, 0x03, 0xD8, 0x11, 0x53, - 0x4F, 0x6C, 0x8B, 0xB7, 0x40, 0xF2, 0x79, 0x20, - 0x74, 0x97, 0x3E, 0x3D, 0x05, 0xD4, 0x70, 0x30, - 0x54, 0x59, 0xE7, 0x15, 0xE1, 0xEB, 0x71, 0x83, - 0xFE, 0x66, 0xB1, 0xA6, 0xF7, 0x8E, 0x6A, 0xEA, - 0x65, 0x7E, 0xA3, 0xCA, 0x2D, 0x4B, 0xB8, 0x9C, - 0x35, 0xC3, 0xB6, 0x49, 0x32, 0x25, 0xB3, 0xB0, - 0x76, 0xC0, 0xF5, 0x00, 0x8A, 0xAF, 0x19, 0xDB, - 0xDD, 0x47, 0xDC, 0x07, 0xB2, 0x4A, 0x55, 0xE6, - 0x69, 0xEC, 0xED, 0x06, 0x94, 0xB9, 0xA7, 0x56, - 0x2C, 0xAA, 0xE3, 0x22, 0x3B, 0x98, 0x77, 0x52, - 0x3C, 0x64, 0xF8, 0x13, 0x78, 0xFC, 0xFB, 0xF3, - 0xD3, 0xF9, 0x29, 0x45, 0x51, 0x8C, 0xA0, 0x38, - 0xD9, 0xA5, 0x62, 0x3A, 0x6E, 0xD0, 0xE8, 0x7A, - 0x33, 0x1D, 0xB4, 0x73, 0x02, 0xFF, 0x10, 0x80, - 0x6B, 0xF0, 0xA4, 0xBA, 0xF6, 0xC2, 0x0E, 0xE2, - 0x81, 0x43, 0x84, 0x86, 0x1F, 0x31, 0x2F, 0xA9, - 0x1B, 0x2A, 0x4E, 0xF4, 0x95, 0x5B, 0x3F, 0x34, - 0x39, 0x7B, 0x0A, 0x26, 0x6D, 0x57, 0x50, 0x09, - 0x9E, 0xA8, 0xBC, 0x24, 0x93, 0x67, 0x41, 0x96, - 0x0C, 0x46, 0xBD, 0xE9, 0x68, 0x18, 0xAB, 0x2E, - 0x5D, 0x1A, 0x8D, 0xC1, 0x58, 0x48, 0xAD, 0x0F }; - -static const unsigned char table_60[32] = { - 0x1C, 0x06, 0x1E, 0x10, 0x1D, 0x05, 0x00, 0x0E, - 0x0C, 0x02, 0x11, 0x19, 0x15, 0x18, 0x16, 0x07, - 0x1F, 0x0B, 0x14, 0x01, 0x0F, 0x09, 0x0D, 0x13, - 0x03, 0x08, 0x12, 0x04, 0x1B, 0x0A, 0x17, 0x1A }; - -static const unsigned char table_61[256] = { - 0xC5, 0xA6, 0xF2, 0x6B, 0x4B, 0x58, 0xE0, 0x41, - 0xC6, 0x2F, 0x13, 0xFE, 0xC1, 0x34, 0x3F, 0x24, - 0x10, 0xBF, 0x8B, 0xC9, 0x26, 0x2E, 0x68, 0xBE, - 0x28, 0x54, 0x93, 0x11, 0x21, 0x03, 0xFF, 0x50, - 0x31, 0x71, 0x2C, 0x6C, 0x91, 0x8F, 0x3B, 0x40, - 0x3E, 0xE5, 0xA5, 0x80, 0xEA, 0x7C, 0x9D, 0x18, - 0x84, 0x5A, 0x73, 0x3A, 0x33, 0x43, 0xA1, 0x47, - 0xB1, 0xEE, 0xFB, 0x79, 0x5E, 0xAF, 0xB9, 0x48, - 0x0F, 0x88, 0x65, 0x67, 0x6F, 0xDB, 0x25, 0xE4, - 0xB0, 0x87, 0xD0, 0x46, 0xB5, 0xB7, 0x53, 0xD4, - 0x1E, 0x76, 0xB4, 0x90, 0xDD, 0xA3, 0xF7, 0x57, - 0xD2, 0xCC, 0x5D, 0xE3, 0xB3, 0xD8, 0x5F, 0x2B, - 0x69, 0x4A, 0x9B, 0x39, 0x1A, 0x8D, 0x05, 0x8A, - 0x44, 0x15, 0xAE, 0xF3, 0xA8, 0x92, 0x02, 0xAB, - 0xB8, 0xDA, 0x0A, 0x0C, 0xED, 0xD7, 0x77, 0x98, - 0x3D, 0x19, 0x95, 0x36, 0xE7, 0x7F, 0x66, 0xEF, - 0x86, 0xDC, 0xCB, 0x9C, 0x63, 0xE6, 0x1D, 0x14, - 0x9A, 0x22, 0xBD, 0xD6, 0x89, 0x2D, 0xD1, 0xF9, - 0xA2, 0xDE, 0xF5, 0x5C, 0x8E, 0x2A, 0x29, 0xCA, - 0x7A, 0x8C, 0x38, 0x9F, 0xBB, 0xDF, 0xEC, 0x30, - 0x00, 0xFC, 0xAC, 0x81, 0xB2, 0xE8, 0xC0, 0xA7, - 0x7B, 0x07, 0x52, 0x74, 0x70, 0x0E, 0x51, 0x6A, - 0x62, 0x0D, 0x85, 0x1B, 0x4F, 0x96, 0x55, 0x1C, - 0x32, 0x6E, 0x01, 0xF6, 0x08, 0xFD, 0x17, 0x35, - 0xF0, 0x16, 0xC8, 0x23, 0xE9, 0x59, 0x3C, 0x37, - 0x5B, 0x42, 0xD3, 0x49, 0x7D, 0x83, 0x78, 0xAD, - 0x94, 0x9E, 0x56, 0xB6, 0xF1, 0xC3, 0x75, 0xF8, - 0xFA, 0x09, 0x4C, 0xD9, 0x97, 0xF4, 0x7E, 0x6D, - 0xBC, 0x4D, 0x64, 0xCD, 0x12, 0x99, 0x45, 0xCE, - 0x61, 0x20, 0x0B, 0xA0, 0x82, 0xD5, 0xE1, 0x72, - 0xA9, 0x1F, 0x06, 0x27, 0xC7, 0x04, 0xE2, 0xBA, - 0xCF, 0x60, 0xAA, 0xA4, 0xEB, 0xC4, 0x4E, 0xC2 }; - -static const unsigned char table_62[256] = { - 0x01, 0x59, 0xEC, 0xFC, 0x51, 0xD2, 0xE4, 0x9D, - 0xAA, 0x61, 0xD5, 0xCA, 0x63, 0x5D, 0xCE, 0x36, - 0xB9, 0x49, 0x76, 0xA9, 0x14, 0x4C, 0x90, 0x28, - 0x66, 0x17, 0x4F, 0x1E, 0x1A, 0x47, 0x30, 0xE8, - 0xFD, 0x86, 0x2E, 0x7B, 0x7E, 0xCC, 0x34, 0x13, - 0x94, 0x45, 0x38, 0x74, 0x29, 0xB0, 0x37, 0xC3, - 0x26, 0x6C, 0x39, 0xA3, 0x89, 0xEB, 0xA2, 0x20, - 0x00, 0xE0, 0x73, 0xE7, 0xB5, 0xCB, 0xED, 0x3E, - 0x79, 0x09, 0xFA, 0x32, 0x54, 0xBA, 0x05, 0x96, - 0xDE, 0x23, 0xD0, 0xA1, 0xAB, 0xFE, 0xF2, 0x22, - 0xB2, 0x9B, 0x7D, 0x44, 0x12, 0x3D, 0x40, 0x82, - 0xA0, 0xA8, 0x33, 0xDC, 0xF7, 0xFB, 0xAC, 0x41, - 0x8A, 0x9C, 0x60, 0x11, 0xC8, 0xF0, 0xEA, 0x57, - 0x3A, 0x42, 0xCD, 0x1D, 0x3C, 0xC6, 0x97, 0x62, - 0x55, 0x9F, 0xF3, 0x93, 0x91, 0xDA, 0x6A, 0xE5, - 0x27, 0x8E, 0x4E, 0xFF, 0xA4, 0x80, 0x04, 0xE1, - 0x2B, 0x5E, 0xC0, 0x64, 0xC2, 0xD8, 0x46, 0x8C, - 0xD4, 0x0F, 0xC4, 0x43, 0xD9, 0x9E, 0x4B, 0x5C, - 0x0A, 0x8B, 0xBF, 0xD7, 0x7A, 0x81, 0x3B, 0x4A, - 0x58, 0xB6, 0x21, 0x1F, 0xC1, 0xBD, 0xB1, 0x77, - 0x72, 0x1C, 0x4D, 0xBC, 0xA5, 0x65, 0xC7, 0xF5, - 0xB4, 0x2D, 0x69, 0x71, 0xE6, 0x8F, 0xBB, 0x03, - 0xAF, 0xD6, 0x08, 0x75, 0xB7, 0x31, 0xF4, 0x2A, - 0x48, 0x70, 0x0C, 0x8D, 0xD1, 0x87, 0x2F, 0x16, - 0x5A, 0x5B, 0x98, 0xA6, 0xC5, 0x99, 0x50, 0x07, - 0xDD, 0x92, 0x25, 0x68, 0x0D, 0xBE, 0x78, 0x0B, - 0xAD, 0x84, 0x6B, 0x19, 0x52, 0x7C, 0xF6, 0xB3, - 0x56, 0x83, 0x88, 0xEE, 0x2C, 0x1B, 0x6E, 0x53, - 0x67, 0xE2, 0x6F, 0x15, 0x06, 0x10, 0x18, 0x85, - 0xF1, 0x6D, 0xF9, 0xC9, 0xAE, 0x3F, 0xB8, 0x95, - 0x35, 0xDF, 0xEF, 0xA7, 0x7F, 0x24, 0xF8, 0xE3, - 0xCF, 0xE9, 0xDB, 0xD3, 0x02, 0x9A, 0x0E, 0x5F }; - -static const unsigned char table_63[256] = { - 0x0C, 0x02, 0xEE, 0x94, 0x2D, 0x76, 0x96, 0x75, - 0x21, 0xDC, 0x37, 0x03, 0xC0, 0xF7, 0xDF, 0xEF, - 0xB1, 0x1D, 0xCF, 0x15, 0x5A, 0xB4, 0xCC, 0x81, - 0x89, 0x6B, 0xA5, 0x2E, 0x6D, 0xD4, 0x08, 0x44, - 0x2A, 0x60, 0x50, 0xBF, 0x40, 0x7D, 0x5F, 0x64, - 0x93, 0x70, 0xA4, 0x7F, 0xC9, 0xEB, 0x0A, 0xF8, - 0x9F, 0xA8, 0xBC, 0x25, 0xE5, 0xF3, 0x1B, 0xD7, - 0x29, 0x13, 0x0D, 0x69, 0x20, 0x5C, 0x0F, 0x91, - 0x4F, 0x62, 0x06, 0x26, 0x41, 0xED, 0xDA, 0x53, - 0x65, 0xFF, 0xCD, 0x3F, 0xF6, 0x01, 0xCE, 0xA2, - 0x04, 0xDE, 0x27, 0x87, 0xBA, 0x86, 0x24, 0x78, - 0xAF, 0xE1, 0x3D, 0xD0, 0xC8, 0x1F, 0x4A, 0x2C, - 0x9A, 0xF0, 0xCB, 0xAD, 0x0B, 0x59, 0xC5, 0x58, - 0xEA, 0x8A, 0xA1, 0x45, 0xB7, 0x5D, 0xB5, 0x77, - 0x2B, 0x47, 0x05, 0x00, 0xAC, 0x61, 0xFA, 0x33, - 0x74, 0x31, 0xCA, 0x22, 0x42, 0x8B, 0xFE, 0x09, - 0xB2, 0x6E, 0x1A, 0xBE, 0xAA, 0x7B, 0xEC, 0xF4, - 0x51, 0x66, 0x28, 0x12, 0xFC, 0x5E, 0x67, 0xF5, - 0xB9, 0x82, 0x90, 0x8E, 0x8D, 0x17, 0xE7, 0xE8, - 0xB0, 0xC3, 0x16, 0xA0, 0x4B, 0xB6, 0xFB, 0x7E, - 0xC4, 0x85, 0x4C, 0x1E, 0xC7, 0x39, 0x4E, 0xA9, - 0xE3, 0x4D, 0x32, 0x72, 0x35, 0x80, 0xE0, 0x34, - 0xB8, 0x73, 0x98, 0x49, 0x92, 0x30, 0xD5, 0xD2, - 0xA3, 0x54, 0x7A, 0x84, 0x8F, 0x6C, 0xFD, 0x43, - 0x3A, 0x36, 0x3B, 0xD9, 0x48, 0x6A, 0x14, 0x79, - 0xD1, 0x57, 0x88, 0xDB, 0xE4, 0x9B, 0xF9, 0x99, - 0x10, 0x71, 0xC1, 0x68, 0x9E, 0x11, 0xAB, 0xBD, - 0x7C, 0x3E, 0x3C, 0x18, 0x9D, 0x97, 0xF2, 0xE6, - 0xA6, 0xF1, 0x46, 0xC2, 0x19, 0xBB, 0x52, 0xD8, - 0x95, 0xD3, 0x23, 0xAE, 0x07, 0x2F, 0xE9, 0x63, - 0x1C, 0x55, 0x6F, 0x9C, 0x56, 0x38, 0xC6, 0x5B, - 0x8C, 0xE2, 0x83, 0xA7, 0xD6, 0x0E, 0xB3, 0xDD }; - -static const unsigned char table_64[32] = { - 0x03, 0x05, 0x0D, 0x09, 0x1A, 0x16, 0x08, 0x10, - 0x06, 0x1E, 0x1C, 0x15, 0x02, 0x04, 0x17, 0x0C, - 0x18, 0x0B, 0x19, 0x11, 0x1B, 0x14, 0x13, 0x0A, - 0x0E, 0x00, 0x1D, 0x1F, 0x01, 0x0F, 0x07, 0x12 }; - -static const unsigned char table_65[32] = { - 0x01, 0x0A, 0x1E, 0x14, 0x10, 0x1D, 0x0D, 0x17, - 0x0E, 0x0C, 0x0F, 0x12, 0x04, 0x1A, 0x05, 0x02, - 0x08, 0x1C, 0x09, 0x1F, 0x0B, 0x13, 0x19, 0x1B, - 0x11, 0x00, 0x16, 0x06, 0x03, 0x18, 0x15, 0x07 }; - -static const unsigned char table_66[32] = { - 0x1C, 0x18, 0x0C, 0x09, 0x05, 0x03, 0x15, 0x12, - 0x0D, 0x02, 0x08, 0x0E, 0x19, 0x07, 0x13, 0x17, - 0x1E, 0x1D, 0x1F, 0x11, 0x06, 0x0A, 0x0B, 0x14, - 0x0F, 0x10, 0x01, 0x1B, 0x00, 0x04, 0x1A, 0x16 }; - -static const unsigned char table_67[256] = { - 0x6B, 0x49, 0xC8, 0x86, 0xFF, 0xC0, 0x5D, 0xEF, - 0xF7, 0x06, 0xE0, 0x98, 0xA9, 0x72, 0x71, 0xD5, - 0xBA, 0x7F, 0x10, 0xD1, 0xBE, 0x41, 0x9C, 0x40, - 0x28, 0x8E, 0xE5, 0x74, 0x47, 0x9E, 0x3E, 0x7C, - 0xB5, 0xCD, 0x3F, 0x20, 0xF2, 0xA6, 0xDC, 0x97, - 0x32, 0x6D, 0x52, 0xF5, 0x16, 0x05, 0xFE, 0x04, - 0x3D, 0x53, 0x50, 0x23, 0x39, 0x77, 0x08, 0x60, - 0x75, 0x18, 0x4A, 0xC6, 0xBB, 0xE7, 0xF1, 0xAB, - 0xEB, 0x88, 0xB6, 0x82, 0x6E, 0x91, 0xF3, 0x34, - 0x3A, 0x42, 0x1A, 0xDF, 0xA1, 0xB3, 0x92, 0xBF, - 0xB7, 0x00, 0xD4, 0xDE, 0x31, 0xF0, 0x1C, 0xDA, - 0x4F, 0x61, 0x67, 0x2C, 0x07, 0xF9, 0x15, 0xA4, - 0x7A, 0x26, 0x45, 0x2A, 0x12, 0x9F, 0xF4, 0x14, - 0x8C, 0x90, 0xFC, 0xC5, 0x4B, 0x87, 0xE2, 0xC7, - 0xD0, 0x8A, 0xE8, 0xDD, 0xEE, 0x3C, 0x2F, 0x22, - 0x6A, 0x54, 0x37, 0x9B, 0x84, 0x25, 0x8F, 0xE3, - 0xD7, 0xD8, 0x4E, 0xAD, 0x0F, 0x4C, 0x56, 0xA2, - 0xD3, 0xB0, 0x73, 0x0B, 0xAE, 0xEA, 0x1D, 0x01, - 0x36, 0xB4, 0x2D, 0xC4, 0x19, 0x58, 0x1E, 0x62, - 0xE9, 0xB2, 0x5B, 0x5A, 0xBD, 0xD6, 0x65, 0x94, - 0x9A, 0x55, 0xCC, 0x99, 0x1B, 0x85, 0x2B, 0xBC, - 0x8D, 0x46, 0x81, 0xB8, 0xA3, 0x29, 0x5F, 0x35, - 0x5C, 0xB1, 0x1F, 0x13, 0x17, 0xCB, 0x51, 0x02, - 0x09, 0x7E, 0xA7, 0x69, 0x6F, 0x95, 0x30, 0x7B, - 0xCA, 0x48, 0xAF, 0xAA, 0x0E, 0x44, 0x38, 0xB9, - 0x0D, 0x11, 0xA0, 0xD9, 0x0C, 0xDB, 0xF8, 0x68, - 0x33, 0x79, 0x59, 0x66, 0x4D, 0x03, 0xE1, 0x89, - 0xE4, 0x3B, 0x78, 0xC2, 0x64, 0x6C, 0x27, 0xC9, - 0xCF, 0xAC, 0xED, 0xFA, 0x5E, 0x2E, 0x76, 0x57, - 0x93, 0xEC, 0x80, 0xA8, 0xE6, 0xCE, 0xC1, 0xA5, - 0x9D, 0xD2, 0xC3, 0x0A, 0x7D, 0x70, 0xF6, 0x63, - 0x24, 0x43, 0x21, 0x83, 0xFB, 0xFD, 0x8B, 0x96 }; - -static const unsigned char table_68[256] = { - 0x93, 0xFF, 0x83, 0x70, 0x12, 0x2D, 0x1C, 0xD6, - 0xF9, 0xEE, 0xCF, 0x94, 0x7B, 0xB5, 0xA4, 0x84, - 0x99, 0xF7, 0x67, 0x32, 0xFC, 0x8A, 0xE3, 0xE4, - 0xCE, 0xC6, 0x77, 0x7E, 0xDA, 0x42, 0x85, 0xF0, - 0x7D, 0x48, 0x28, 0x79, 0xDE, 0x5B, 0xE2, 0x0F, - 0x75, 0xC5, 0x2C, 0x4F, 0xF3, 0xEC, 0x14, 0x10, - 0x9C, 0x6E, 0x59, 0x4A, 0x20, 0x34, 0xA3, 0x89, - 0xE0, 0x4E, 0x52, 0x88, 0x81, 0x5F, 0x6F, 0x71, - 0x17, 0x3B, 0x21, 0xB4, 0xCB, 0x9B, 0x18, 0x13, - 0xE8, 0xE1, 0x02, 0x2E, 0xED, 0x00, 0xA7, 0x1B, - 0x06, 0xF4, 0x27, 0xDC, 0x35, 0x2F, 0x08, 0x9D, - 0x7C, 0xC0, 0x36, 0xA6, 0x6B, 0xDF, 0x4C, 0xBC, - 0xFE, 0xDB, 0xA5, 0xA8, 0x8D, 0x73, 0x7F, 0xC7, - 0x8E, 0x60, 0x31, 0x61, 0x4B, 0x29, 0xD7, 0xE9, - 0xBD, 0xAB, 0xCC, 0xFA, 0xD9, 0xEF, 0xC2, 0xD4, - 0x19, 0x11, 0x15, 0xC9, 0xB1, 0xD5, 0x64, 0x97, - 0xE7, 0x8F, 0x05, 0x44, 0xF8, 0xF1, 0x58, 0x47, - 0x2A, 0x03, 0x1F, 0xAF, 0x0D, 0x04, 0x23, 0xB8, - 0x24, 0x51, 0xB2, 0x54, 0x41, 0x53, 0x5C, 0xAE, - 0xB7, 0xB3, 0xB6, 0x3D, 0x37, 0x39, 0x55, 0xBF, - 0x0B, 0x7A, 0x57, 0x3C, 0x0E, 0x40, 0x6A, 0xF5, - 0x72, 0xDD, 0xBB, 0x8B, 0xAA, 0x46, 0xA0, 0x30, - 0x56, 0x78, 0x38, 0xBA, 0x9E, 0x92, 0x87, 0xFB, - 0x66, 0x90, 0x1E, 0xB9, 0x96, 0x65, 0xA2, 0x50, - 0x1D, 0xC3, 0x26, 0x22, 0xD0, 0x0A, 0x43, 0xF2, - 0xB0, 0xEB, 0xAC, 0x62, 0x98, 0x3F, 0xD3, 0x69, - 0xA1, 0x9F, 0x16, 0x95, 0xE6, 0xF6, 0x2B, 0x25, - 0x1A, 0xD2, 0xBE, 0x09, 0x5D, 0x45, 0xC4, 0xFD, - 0x5A, 0x07, 0x0C, 0x82, 0x3E, 0x49, 0x74, 0x6C, - 0x68, 0x5E, 0xCA, 0xEA, 0xCD, 0x9A, 0xAD, 0xD1, - 0x33, 0x86, 0x76, 0x80, 0xE5, 0xC8, 0xD8, 0xA9, - 0x8C, 0x6D, 0x91, 0x63, 0x3A, 0x4D, 0xC1, 0x01 }; - -static const unsigned char table_69[256] = { - 0x21, 0x6B, 0x9B, 0xAE, 0x11, 0x5A, 0x91, 0xC2, - 0x47, 0x8E, 0x87, 0x86, 0x4F, 0xFC, 0x8F, 0x66, - 0x97, 0x2F, 0x61, 0x9C, 0x5B, 0x4C, 0xB3, 0x14, - 0x77, 0x48, 0x62, 0xE1, 0x54, 0x64, 0xDD, 0xCD, - 0x30, 0xB7, 0x2D, 0xD2, 0xC3, 0xC0, 0x0B, 0xD8, - 0x53, 0x98, 0x16, 0x56, 0x7A, 0x35, 0x50, 0xD9, - 0xE8, 0x2C, 0x32, 0x55, 0x17, 0x5D, 0x79, 0xEB, - 0xC8, 0x75, 0x67, 0xE2, 0x4B, 0xBA, 0xFE, 0x57, - 0x10, 0xF4, 0x70, 0x2A, 0xBB, 0xA6, 0x72, 0x36, - 0xAF, 0x8D, 0xAB, 0x90, 0xE3, 0x2B, 0xB2, 0x26, - 0x93, 0x01, 0xBD, 0x71, 0xF9, 0x05, 0xC7, 0x80, - 0x29, 0xCC, 0x3B, 0x22, 0xF2, 0x12, 0x81, 0x34, - 0xF6, 0x1A, 0x8B, 0xDF, 0x28, 0x46, 0x9E, 0x6A, - 0x23, 0x85, 0x74, 0xE7, 0xE6, 0x52, 0xA0, 0x49, - 0xF0, 0x19, 0x25, 0xAC, 0x78, 0x42, 0xD6, 0xA2, - 0x37, 0x65, 0x4D, 0x94, 0x02, 0x6F, 0xB4, 0xC6, - 0x99, 0xD3, 0x9A, 0x33, 0xB8, 0x00, 0xCA, 0xE4, - 0x45, 0xAD, 0x1B, 0x6C, 0x03, 0xA8, 0x07, 0x8A, - 0x60, 0x69, 0xFF, 0xF7, 0xA7, 0x27, 0x95, 0xF5, - 0x82, 0xCB, 0xEC, 0xED, 0x4E, 0xFB, 0xA4, 0x59, - 0xDA, 0xCF, 0x2E, 0x20, 0xFA, 0x31, 0xD1, 0xEA, - 0x4A, 0xE9, 0x5E, 0xA9, 0xA1, 0x08, 0x1C, 0x96, - 0x38, 0xB9, 0xEE, 0x7F, 0xAA, 0xF1, 0x7D, 0x3A, - 0xA5, 0x43, 0xC5, 0xE0, 0x24, 0x39, 0x0D, 0xDE, - 0xB0, 0xF8, 0xBE, 0x58, 0x7E, 0x51, 0xD4, 0x89, - 0x15, 0x40, 0x3E, 0xB1, 0x1F, 0x5F, 0x68, 0x63, - 0x84, 0x3D, 0x88, 0xBC, 0x41, 0xEF, 0xB5, 0xBF, - 0x06, 0x6E, 0x9D, 0x3F, 0x0E, 0x76, 0x5C, 0xDC, - 0x13, 0xF3, 0xE5, 0x8C, 0x7C, 0x04, 0x0A, 0xD5, - 0x18, 0xC4, 0x44, 0x09, 0xC9, 0x1D, 0x9F, 0xFD, - 0xD0, 0x0F, 0x6D, 0xD7, 0x92, 0x7B, 0x0C, 0xA3, - 0x73, 0xDB, 0xB6, 0x83, 0xCE, 0x1E, 0xC1, 0x3C }; - -static const unsigned char table_70[256] = { - 0x54, 0x23, 0xF1, 0x09, 0x9D, 0xEB, 0x26, 0xD9, - 0x6C, 0xC1, 0xBC, 0x3D, 0x6E, 0xB0, 0x5F, 0xE2, - 0x59, 0x4D, 0x95, 0xFA, 0xD8, 0x29, 0xAA, 0x8E, - 0xF5, 0xEF, 0x43, 0x76, 0xFD, 0x0D, 0x4F, 0xAD, - 0xB7, 0xFC, 0xA8, 0x9F, 0x62, 0xC2, 0x7B, 0x10, - 0x0B, 0xF2, 0x73, 0xA9, 0x46, 0x4C, 0x53, 0xD7, - 0x0A, 0x50, 0x89, 0x63, 0x48, 0xD6, 0xA2, 0x44, - 0xE6, 0x8D, 0x69, 0x2C, 0xF9, 0xC0, 0x35, 0x06, - 0x66, 0x21, 0x9E, 0xD2, 0x98, 0xF7, 0x9B, 0xE7, - 0x12, 0xB8, 0xA5, 0xBA, 0xE0, 0x79, 0x71, 0x7E, - 0x8C, 0x24, 0xED, 0x7C, 0x60, 0x81, 0xC3, 0x5C, - 0x2B, 0xE5, 0xEE, 0xB5, 0xA4, 0x05, 0x03, 0x34, - 0x16, 0x2A, 0xA3, 0x2D, 0x3F, 0xDF, 0x07, 0x5B, - 0xAE, 0x47, 0x61, 0x08, 0x18, 0xDB, 0x6D, 0x3C, - 0x96, 0xD5, 0xAB, 0x78, 0x94, 0x45, 0x20, 0x9A, - 0xE4, 0x13, 0x68, 0xDD, 0xDE, 0x31, 0x14, 0x57, - 0x02, 0x52, 0x56, 0x1C, 0x1B, 0xE9, 0xD0, 0xA1, - 0x22, 0x64, 0xB2, 0x7A, 0xCF, 0x5D, 0x00, 0x0F, - 0xF8, 0x5E, 0x36, 0x58, 0x40, 0xAF, 0x19, 0x32, - 0x2E, 0xB3, 0x72, 0xBE, 0xB9, 0xD3, 0xCD, 0x7D, - 0x4A, 0x1D, 0x33, 0x2F, 0xAC, 0x27, 0x41, 0xE8, - 0x55, 0xCB, 0x0E, 0x5A, 0x77, 0xFB, 0x8B, 0x86, - 0x75, 0x8A, 0x51, 0xEC, 0xDA, 0xC6, 0xA6, 0xCC, - 0x91, 0x4B, 0x11, 0xF6, 0xEA, 0xD1, 0xB6, 0x4E, - 0x82, 0x04, 0x92, 0x30, 0xF4, 0x25, 0x88, 0x1E, - 0x9C, 0xA0, 0xC8, 0x6A, 0x93, 0x87, 0x1F, 0xB4, - 0xB1, 0x8F, 0x65, 0xCA, 0xFE, 0xFF, 0x97, 0x15, - 0x99, 0x28, 0x80, 0x42, 0x70, 0x85, 0x0C, 0x3B, - 0xBD, 0xE1, 0xA7, 0x17, 0xC9, 0x3A, 0xBB, 0x6B, - 0x37, 0xF0, 0xC5, 0x39, 0x6F, 0x01, 0x83, 0x67, - 0x74, 0xCE, 0xDC, 0x90, 0x3E, 0xF3, 0x7F, 0xC4, - 0x49, 0x84, 0x38, 0xC7, 0xE3, 0xD4, 0x1A, 0xBF }; - -static const unsigned char table_71[32] = { - 0x17, 0x13, 0x0E, 0x1A, 0x0D, 0x18, 0x19, 0x10, - 0x14, 0x11, 0x16, 0x05, 0x04, 0x00, 0x12, 0x0A, - 0x02, 0x07, 0x03, 0x0B, 0x09, 0x1F, 0x1C, 0x0F, - 0x0C, 0x06, 0x1B, 0x08, 0x1D, 0x01, 0x15, 0x1E }; - -static const unsigned char table_72[256] = { - 0xC9, 0xA7, 0x1B, 0xEC, 0x2B, 0x8B, 0xB0, 0xEB, - 0x7F, 0x39, 0x25, 0xD9, 0x1D, 0xD5, 0x67, 0xA0, - 0xB3, 0xAC, 0x3B, 0xC8, 0x82, 0xC0, 0xE3, 0x9E, - 0x4C, 0x9B, 0xAF, 0xFD, 0x91, 0x86, 0x5F, 0x92, - 0xB4, 0x42, 0x3C, 0x45, 0x12, 0xC4, 0xE2, 0xE1, - 0x6C, 0x1F, 0xC6, 0x40, 0x93, 0x2A, 0xC2, 0x72, - 0x2E, 0x14, 0x51, 0xA5, 0x70, 0xBD, 0xA2, 0xC7, - 0x7D, 0xF1, 0x9F, 0x64, 0xC1, 0xF7, 0x80, 0xFF, - 0x50, 0x49, 0x8C, 0x66, 0x13, 0x48, 0x6A, 0x0A, - 0x26, 0x94, 0x83, 0x1E, 0x84, 0xBB, 0x57, 0x27, - 0x44, 0x5B, 0x62, 0xF6, 0x09, 0x4F, 0x77, 0x76, - 0x2D, 0x7E, 0xCD, 0x0B, 0x24, 0xFE, 0x81, 0xB8, - 0x21, 0x85, 0xCF, 0xA8, 0x75, 0x56, 0x37, 0x17, - 0xAA, 0x23, 0xE5, 0xE8, 0x9A, 0x9D, 0x2F, 0x04, - 0x31, 0x4A, 0x7C, 0xFC, 0xD6, 0xE4, 0x29, 0xC3, - 0xFB, 0x36, 0x1C, 0x0C, 0xCE, 0xEE, 0x0D, 0xF3, - 0x46, 0xF8, 0x41, 0x0E, 0x68, 0xAB, 0x2C, 0x69, - 0x96, 0x90, 0x28, 0xED, 0x02, 0x63, 0x07, 0xAD, - 0xB2, 0xDC, 0x05, 0xE6, 0x78, 0x03, 0xA4, 0x7A, - 0x5C, 0x52, 0x95, 0x5D, 0x88, 0x01, 0xDF, 0x35, - 0x5E, 0xB6, 0x06, 0x4D, 0x15, 0x89, 0x59, 0x3F, - 0xF0, 0xA1, 0xA3, 0x99, 0x19, 0xEA, 0xDB, 0xE0, - 0x6B, 0x71, 0x6E, 0xB7, 0x65, 0x54, 0x9C, 0xBC, - 0x98, 0xDD, 0x4B, 0x60, 0x3D, 0xBF, 0xF5, 0xD1, - 0xD7, 0xF9, 0x55, 0x61, 0xA9, 0xB1, 0x6D, 0xDE, - 0x79, 0xAE, 0x1A, 0x34, 0x3A, 0x4E, 0xCB, 0x38, - 0xBA, 0x97, 0x00, 0x74, 0xEF, 0xD8, 0x18, 0x33, - 0x7B, 0xFA, 0x22, 0x32, 0x20, 0xCA, 0x8A, 0xBE, - 0xA6, 0x43, 0x11, 0x10, 0xD0, 0xD3, 0x87, 0x73, - 0x6F, 0xF4, 0x8D, 0xCC, 0x30, 0x0F, 0x16, 0xDA, - 0xB5, 0xC5, 0xD4, 0x47, 0x8E, 0xE7, 0x58, 0x8F, - 0x08, 0x53, 0xF2, 0xB9, 0x5A, 0x3E, 0xE9, 0xD2 }; - -static const unsigned char table_73[256] = { - 0x36, 0x37, 0xED, 0xD8, 0xBF, 0xD7, 0x12, 0xB7, - 0x40, 0x32, 0x19, 0x4A, 0x44, 0x2A, 0xCE, 0xA5, - 0x29, 0x13, 0x43, 0x51, 0x5C, 0xD0, 0x76, 0x6E, - 0x41, 0xD6, 0xE2, 0x4F, 0xB8, 0x27, 0x2E, 0xCF, - 0xD9, 0xE0, 0x69, 0xC0, 0x59, 0x77, 0x62, 0x6F, - 0x53, 0xE7, 0x93, 0xD4, 0xAD, 0xC8, 0x4C, 0xC2, - 0x2C, 0xBE, 0xAA, 0xA0, 0x22, 0x78, 0x14, 0xB3, - 0xB0, 0xEA, 0xBA, 0x9A, 0x33, 0x1B, 0x31, 0x6C, - 0xFC, 0x0A, 0x0B, 0xA1, 0xE4, 0x75, 0x7C, 0xE3, - 0x65, 0x21, 0xA9, 0xA4, 0x4E, 0x3C, 0x5F, 0x39, - 0x74, 0xA2, 0x9E, 0x03, 0x70, 0xD2, 0xFD, 0x1D, - 0x25, 0x72, 0x73, 0x8E, 0x7B, 0xB2, 0x6A, 0x92, - 0x81, 0xF3, 0xF0, 0x46, 0x08, 0x85, 0xE6, 0x30, - 0x05, 0x7E, 0xEC, 0x0D, 0xDD, 0x42, 0x2F, 0x5B, - 0xB9, 0xCB, 0x84, 0x0C, 0x16, 0xC7, 0x24, 0xFA, - 0xF9, 0x8F, 0x20, 0xAC, 0x10, 0x55, 0xC3, 0x1A, - 0x8B, 0x94, 0x3D, 0xDB, 0xC9, 0x04, 0xB5, 0xCC, - 0xC6, 0x98, 0xB6, 0x8D, 0x0F, 0x3A, 0x06, 0x4B, - 0xEF, 0x35, 0x68, 0x3F, 0xEE, 0xE5, 0x63, 0xC5, - 0x60, 0x88, 0x52, 0x2D, 0x6D, 0xAB, 0xCD, 0xC4, - 0x1F, 0xF4, 0xCA, 0x67, 0x7D, 0x1C, 0xDA, 0x34, - 0xDE, 0x86, 0xAE, 0xF1, 0x61, 0x09, 0xF5, 0xF6, - 0x49, 0xE9, 0xF2, 0x48, 0x1E, 0xD3, 0x56, 0x18, - 0x9B, 0xB1, 0x57, 0x9D, 0xBB, 0x5E, 0xAF, 0x87, - 0x9F, 0x8A, 0xC1, 0x79, 0xA7, 0xA8, 0xFB, 0xDC, - 0x47, 0x3E, 0x97, 0x80, 0x91, 0xA6, 0x7A, 0xA3, - 0x9C, 0x11, 0x02, 0x2B, 0x58, 0xD1, 0xF7, 0x00, - 0x83, 0x01, 0xE8, 0xFE, 0x50, 0x23, 0x66, 0x4D, - 0xD5, 0x82, 0x89, 0x3B, 0xEB, 0xE1, 0xF8, 0x5A, - 0x15, 0x7F, 0x8C, 0x17, 0x96, 0x28, 0x5D, 0x64, - 0x26, 0x38, 0x71, 0x0E, 0x45, 0xDF, 0xB4, 0x99, - 0xFF, 0x90, 0x6B, 0xBC, 0x54, 0x95, 0xBD, 0x07 }; - -static const unsigned char table_74[256] = { - 0xA7, 0xCF, 0x99, 0x1A, 0x13, 0xC7, 0xE9, 0xC4, - 0xB6, 0x0E, 0x15, 0x09, 0xFF, 0xDF, 0xBE, 0x03, - 0xAD, 0xF1, 0xB0, 0x3C, 0x4A, 0x9B, 0xF5, 0x12, - 0xA1, 0x2C, 0xDB, 0x51, 0x5E, 0x6F, 0xE6, 0x49, - 0x27, 0xBB, 0xAE, 0x56, 0xC0, 0x0C, 0x77, 0x60, - 0x5B, 0x69, 0xA2, 0xF0, 0x24, 0x8E, 0xE1, 0xA4, - 0xBC, 0x9F, 0x50, 0xD4, 0x61, 0x19, 0x67, 0x00, - 0x7B, 0xAB, 0xDD, 0x26, 0xCD, 0x6C, 0xE8, 0xA8, - 0x7A, 0x93, 0xEF, 0x20, 0x52, 0x1F, 0x1B, 0x46, - 0x25, 0x3B, 0x1E, 0x65, 0xC2, 0xF9, 0x10, 0xB2, - 0xB3, 0xD9, 0x21, 0xD2, 0x11, 0x94, 0xE2, 0xFC, - 0x38, 0x9E, 0x36, 0x87, 0xAA, 0x53, 0x45, 0x68, - 0x2B, 0xE7, 0x07, 0xFA, 0xD3, 0x8D, 0x3F, 0x17, - 0xC1, 0x06, 0x72, 0x62, 0x8C, 0x55, 0x73, 0x8A, - 0xC9, 0x2E, 0x5A, 0x7D, 0x02, 0x6D, 0xF8, 0x4B, - 0xE4, 0xBF, 0xEC, 0xB7, 0x31, 0xDC, 0xF4, 0xB8, - 0x47, 0x64, 0x0A, 0x33, 0x48, 0xAC, 0xFB, 0x05, - 0x3E, 0x34, 0x1C, 0x97, 0x1D, 0x63, 0x37, 0x2D, - 0xB1, 0x92, 0xED, 0x9D, 0x4C, 0xD5, 0x4E, 0x9A, - 0x0D, 0x79, 0x0F, 0xBD, 0x95, 0xBA, 0x08, 0x2A, - 0xC6, 0x7E, 0x88, 0xCB, 0xA6, 0x29, 0x70, 0x35, - 0x66, 0xCA, 0x89, 0x75, 0x6A, 0x4F, 0xB5, 0x6B, - 0x74, 0xDE, 0x01, 0x04, 0x81, 0x91, 0x90, 0x18, - 0x32, 0x0B, 0x7F, 0x44, 0xB4, 0xAF, 0xF2, 0xEB, - 0x22, 0xFD, 0x14, 0xA0, 0xFE, 0x8B, 0xB9, 0x16, - 0x86, 0xE3, 0xD7, 0xDA, 0xC5, 0x3A, 0x41, 0x83, - 0xD1, 0x28, 0x54, 0x30, 0xE0, 0x40, 0xA5, 0x57, - 0x8F, 0x84, 0xD6, 0x96, 0x39, 0xE5, 0x42, 0x80, - 0xA9, 0x58, 0xCE, 0x5D, 0xEE, 0x5F, 0xA3, 0xD0, - 0xC8, 0x59, 0x43, 0x4D, 0x5C, 0xF7, 0xCC, 0x76, - 0x6E, 0xF3, 0x23, 0x3D, 0x85, 0x82, 0x78, 0xF6, - 0x2F, 0xD8, 0xC3, 0x7C, 0x9C, 0x98, 0xEA, 0x71 }; - -static const unsigned char table_75[256] = { - 0xE7, 0xA5, 0x30, 0xE1, 0x9D, 0x81, 0xBE, 0x83, - 0xB2, 0x1E, 0xE4, 0x69, 0x2F, 0x2B, 0x0D, 0xEB, - 0x7C, 0x59, 0x2D, 0xAA, 0x01, 0x0C, 0xDB, 0xED, - 0xC4, 0xEE, 0x5D, 0x38, 0x72, 0xD8, 0x70, 0xCE, - 0x0B, 0xF6, 0x7F, 0x48, 0x26, 0x9E, 0xA3, 0x44, - 0xD6, 0xCF, 0x0F, 0x6B, 0xFD, 0x23, 0x98, 0xAB, - 0x11, 0xD4, 0x92, 0x91, 0x5E, 0x08, 0x4D, 0xC6, - 0xF0, 0xA8, 0x7E, 0x8A, 0x1D, 0xA1, 0x97, 0x76, - 0x3E, 0x64, 0x07, 0x24, 0xDE, 0x75, 0xA4, 0xCC, - 0x1A, 0x04, 0x4B, 0x6C, 0xFA, 0xB0, 0xC7, 0x35, - 0xE2, 0x56, 0x61, 0xA0, 0xE9, 0x27, 0xDF, 0xC3, - 0xE5, 0xF4, 0x8D, 0xB4, 0xD3, 0x52, 0xD7, 0x49, - 0xCD, 0x31, 0x6E, 0x3F, 0x4E, 0x6A, 0x5B, 0x65, - 0xCA, 0x14, 0x71, 0x53, 0xD9, 0x47, 0x28, 0x7D, - 0x17, 0x06, 0x5C, 0xFE, 0xBA, 0xB8, 0xAC, 0x15, - 0xE8, 0xE0, 0x9A, 0xDD, 0x1F, 0xBC, 0x95, 0x42, - 0xCB, 0x58, 0x00, 0x85, 0xD5, 0x62, 0xC9, 0xB6, - 0x05, 0x80, 0x4C, 0x3C, 0x1C, 0xF5, 0x03, 0xF8, - 0x96, 0x77, 0x02, 0x19, 0xF2, 0xFB, 0x5F, 0xC2, - 0xAE, 0x60, 0x1B, 0xAD, 0x8F, 0xC1, 0x33, 0xA6, - 0x20, 0xBF, 0xA7, 0xC8, 0x74, 0x18, 0x90, 0xE3, - 0x68, 0x09, 0x7A, 0x79, 0xB5, 0xDA, 0xF3, 0x0E, - 0x66, 0x84, 0xB3, 0xBB, 0xE6, 0xF7, 0xB7, 0x7B, - 0x39, 0x4A, 0x12, 0x4F, 0xC5, 0x41, 0x54, 0xD0, - 0xFF, 0x87, 0x63, 0x40, 0x99, 0x21, 0x29, 0xD2, - 0x3D, 0x37, 0x3A, 0x93, 0xFC, 0x25, 0xF1, 0xD1, - 0x2C, 0x6D, 0x8C, 0x5A, 0x8E, 0x9B, 0xBD, 0xAF, - 0x10, 0x55, 0xF9, 0x9F, 0x43, 0x0A, 0x50, 0x16, - 0x57, 0xB1, 0xC0, 0x73, 0x82, 0xEF, 0x88, 0x6F, - 0xEA, 0x2A, 0xEC, 0x2E, 0x86, 0x45, 0x51, 0x22, - 0xA9, 0x34, 0x94, 0x3B, 0xB9, 0x9C, 0xA2, 0x13, - 0x89, 0x46, 0x78, 0xDC, 0x32, 0x8B, 0x67, 0x36 }; - -static const unsigned char table_76[256] = { - 0x3D, 0x66, 0x40, 0xC5, 0x1D, 0xF5, 0xE7, 0xB7, - 0x2C, 0x23, 0x09, 0xC2, 0x68, 0xE6, 0xD3, 0x8D, - 0x35, 0x94, 0x93, 0xF0, 0x43, 0x97, 0x2B, 0x4B, - 0x1A, 0xEB, 0x00, 0x4C, 0x6F, 0xE4, 0x92, 0xEA, - 0xB8, 0xA3, 0xA6, 0xEC, 0x11, 0x5E, 0x61, 0x81, - 0xE1, 0x48, 0xC9, 0xCB, 0xDB, 0x2E, 0x3B, 0xED, - 0x36, 0x52, 0x3A, 0xD2, 0x4F, 0x4E, 0x22, 0x96, - 0x57, 0x2D, 0x62, 0x53, 0xCF, 0xD9, 0x5B, 0x9F, - 0x8E, 0x78, 0xC6, 0x07, 0x7D, 0xA1, 0x02, 0xB4, - 0xF4, 0xB6, 0x34, 0x98, 0xDA, 0xA9, 0xD4, 0x54, - 0x99, 0x82, 0x0A, 0xD8, 0x88, 0x5D, 0x3C, 0xD0, - 0xAB, 0x31, 0xFB, 0x03, 0x17, 0x46, 0xE8, 0xE2, - 0xA4, 0xFF, 0xB0, 0xAA, 0xAD, 0x7C, 0x55, 0x49, - 0x75, 0x6B, 0x10, 0x24, 0xC0, 0x04, 0xB1, 0xBF, - 0x6A, 0xF6, 0x15, 0xEF, 0x5C, 0x60, 0x27, 0x3E, - 0x38, 0x63, 0xC1, 0x76, 0xFD, 0x84, 0xE0, 0xCD, - 0xFE, 0x30, 0xCE, 0xBB, 0xDC, 0x1E, 0x1B, 0xBC, - 0xB5, 0xE9, 0x9E, 0x8F, 0x0D, 0x3F, 0x91, 0x19, - 0x28, 0x37, 0x26, 0x42, 0x08, 0x9A, 0x0C, 0x83, - 0x90, 0x6D, 0x74, 0x65, 0xF2, 0x4A, 0xDE, 0x8B, - 0x67, 0x0E, 0x8C, 0x5F, 0xF9, 0x7F, 0x5A, 0x86, - 0x69, 0x45, 0x44, 0xD5, 0xF7, 0xE5, 0x8A, 0xA8, - 0xC8, 0x7E, 0x05, 0x64, 0xEE, 0x79, 0xBE, 0x7A, - 0x14, 0xD6, 0x50, 0x18, 0x25, 0xBD, 0x85, 0xE3, - 0xA2, 0x70, 0xCC, 0x59, 0x71, 0x77, 0xFA, 0x47, - 0x9B, 0x1F, 0x9D, 0xBA, 0x29, 0x4D, 0xF8, 0xDF, - 0xC4, 0x72, 0x2F, 0xAE, 0x06, 0x51, 0x41, 0xAF, - 0xF3, 0xDD, 0x87, 0xB2, 0x9C, 0xC7, 0x12, 0x16, - 0x20, 0xA7, 0x21, 0x73, 0xF1, 0x58, 0xD7, 0x7B, - 0xB9, 0xB3, 0x32, 0x01, 0x80, 0x1C, 0x39, 0x0B, - 0x13, 0x56, 0x6C, 0x89, 0x33, 0x6E, 0x2A, 0xA5, - 0xD1, 0x95, 0xC3, 0xA0, 0x0F, 0xCA, 0xAC, 0xFC }; - -static const unsigned char table_77[32] = { - 0x1C, 0x0D, 0x1E, 0x01, 0x06, 0x16, 0x18, 0x17, - 0x0B, 0x1F, 0x04, 0x0F, 0x00, 0x19, 0x08, 0x0A, - 0x11, 0x03, 0x05, 0x07, 0x09, 0x0C, 0x15, 0x14, - 0x1A, 0x12, 0x13, 0x0E, 0x1D, 0x10, 0x02, 0x1B }; - -static const unsigned char table_78[32] = { - 0x0E, 0x02, 0x17, 0x12, 0x1E, 0x09, 0x15, 0x03, - 0x01, 0x0B, 0x0F, 0x11, 0x10, 0x0A, 0x16, 0x06, - 0x07, 0x00, 0x1C, 0x1D, 0x1F, 0x0C, 0x18, 0x04, - 0x13, 0x0D, 0x1B, 0x08, 0x19, 0x14, 0x05, 0x1A }; - -static const unsigned char table_79[32] = { - 0x12, 0x0B, 0x11, 0x01, 0x07, 0x0E, 0x1A, 0x0D, - 0x1E, 0x18, 0x14, 0x1F, 0x0A, 0x17, 0x19, 0x1B, - 0x00, 0x10, 0x0C, 0x08, 0x13, 0x02, 0x0F, 0x1D, - 0x09, 0x06, 0x04, 0x16, 0x15, 0x1C, 0x05, 0x03 }; - -static const unsigned char table_80[256] = { - 0x14, 0xE7, 0x31, 0x0F, 0xD1, 0x5F, 0xED, 0x1E, - 0xA6, 0x77, 0x20, 0x57, 0x34, 0x64, 0x33, 0x0B, - 0x5A, 0xB4, 0x83, 0x62, 0xFD, 0x8E, 0xE4, 0xF3, - 0xBD, 0xA5, 0xC8, 0x6D, 0x3E, 0x4F, 0x01, 0x7A, - 0xD3, 0x45, 0x3C, 0xF2, 0x68, 0xFF, 0xE6, 0x84, - 0xC2, 0xC1, 0x53, 0x72, 0x8C, 0xA1, 0xC7, 0x00, - 0x89, 0x97, 0x69, 0xA4, 0xF8, 0xAA, 0xAD, 0x8F, - 0x24, 0xC6, 0x9A, 0xAC, 0xE5, 0xAB, 0x6B, 0x79, - 0x99, 0x60, 0x28, 0x2B, 0x3B, 0xAF, 0x1C, 0x80, - 0xA3, 0x8A, 0x1A, 0xB5, 0xE1, 0x9F, 0xDA, 0x78, - 0xD7, 0xC4, 0x87, 0x5D, 0xE9, 0x27, 0xFB, 0x18, - 0x94, 0x3A, 0xCE, 0x3F, 0xF6, 0x12, 0x75, 0x37, - 0x6E, 0x9E, 0x29, 0x6C, 0xF7, 0x7D, 0x92, 0x08, - 0x42, 0xB2, 0xBF, 0x0C, 0xB6, 0x25, 0xE0, 0x49, - 0x43, 0x91, 0x98, 0xBB, 0xDC, 0x63, 0xEA, 0xA8, - 0x74, 0x38, 0x35, 0xCD, 0x07, 0x70, 0x81, 0x41, - 0xC9, 0x51, 0xBC, 0xA9, 0x59, 0xD4, 0xB8, 0x2C, - 0x7C, 0x2D, 0xB3, 0x6F, 0x11, 0x86, 0x9D, 0x46, - 0xF0, 0x65, 0x76, 0x04, 0x0E, 0xCA, 0xBE, 0x5C, - 0xF9, 0x71, 0x9C, 0x21, 0x4C, 0x02, 0xFE, 0x8D, - 0xD5, 0x26, 0x40, 0xC3, 0x32, 0x9B, 0xB0, 0x5E, - 0x48, 0xC5, 0x85, 0x4B, 0x0A, 0xCC, 0x58, 0x52, - 0x61, 0x13, 0xEF, 0x4A, 0xEE, 0x03, 0xD9, 0xDE, - 0xA7, 0x19, 0x09, 0x7F, 0x5B, 0x96, 0xBA, 0x0D, - 0xCF, 0xD2, 0x06, 0x1F, 0xD8, 0xDB, 0xEC, 0xA0, - 0xDD, 0x66, 0x10, 0xA2, 0xDF, 0x30, 0xF4, 0x88, - 0xCB, 0x36, 0x82, 0xE3, 0x73, 0x17, 0x55, 0x15, - 0xF5, 0xB7, 0x23, 0xB1, 0xD6, 0xE2, 0x47, 0x7E, - 0x67, 0xE8, 0x1D, 0x16, 0x8B, 0xEB, 0xD0, 0x3D, - 0x6A, 0x54, 0x2A, 0x4E, 0x93, 0xFA, 0x44, 0x05, - 0x2F, 0x50, 0x2E, 0x95, 0xAE, 0x1B, 0x56, 0x7B, - 0x39, 0xB9, 0xC0, 0x22, 0xF1, 0x4D, 0x90, 0xFC }; - -static const unsigned char table_81[32] = { - 0x03, 0x02, 0x1D, 0x0E, 0x09, 0x1A, 0x0C, 0x11, - 0x1C, 0x0D, 0x08, 0x12, 0x19, 0x10, 0x04, 0x17, - 0x15, 0x05, 0x0A, 0x00, 0x13, 0x16, 0x1B, 0x18, - 0x1E, 0x0B, 0x0F, 0x01, 0x07, 0x14, 0x1F, 0x06 }; - -static const unsigned char table_82[256] = { - 0x53, 0xD3, 0x64, 0x89, 0x7D, 0xA5, 0x66, 0xA4, - 0x09, 0x46, 0x17, 0x2C, 0xAF, 0x8C, 0x21, 0x5F, - 0x3B, 0x22, 0xE3, 0x05, 0x07, 0x28, 0x2F, 0xAB, - 0xF4, 0x8E, 0x51, 0x31, 0x02, 0xC7, 0x48, 0x13, - 0x24, 0x12, 0xB8, 0xE5, 0xBD, 0xAE, 0x7E, 0xCC, - 0xC9, 0x98, 0x08, 0xEE, 0xDB, 0x1B, 0xE8, 0x3D, - 0x8F, 0xF2, 0xFB, 0x36, 0x4D, 0x94, 0x9C, 0x16, - 0xF7, 0x42, 0x9B, 0x2B, 0xFD, 0x7B, 0x77, 0x3F, - 0xC3, 0xFC, 0x23, 0x93, 0x50, 0x0C, 0x79, 0x18, - 0x47, 0xE1, 0xCB, 0xA7, 0xB6, 0x85, 0xE6, 0x61, - 0x2D, 0xD8, 0x9F, 0x80, 0xE9, 0x14, 0x0B, 0x1C, - 0x40, 0x76, 0x2A, 0x25, 0x0E, 0x99, 0xAC, 0xC4, - 0xEB, 0x29, 0x41, 0x8A, 0x73, 0x06, 0x57, 0xC6, - 0x8D, 0xFA, 0x5A, 0xCD, 0x67, 0xB2, 0xD9, 0x0A, - 0x1E, 0xEF, 0x3E, 0xA0, 0x45, 0x03, 0x27, 0xF1, - 0x38, 0x54, 0xC1, 0x7A, 0xFE, 0x52, 0x75, 0xD4, - 0x74, 0x7C, 0xD2, 0x68, 0xEA, 0x4C, 0x97, 0xF9, - 0xF5, 0x8B, 0x0F, 0x84, 0xA8, 0x6E, 0x9E, 0x11, - 0x6B, 0xBC, 0x4B, 0x6C, 0x9A, 0xF0, 0xA3, 0x1F, - 0x92, 0x19, 0xA2, 0x3A, 0x15, 0x04, 0xC5, 0x62, - 0xD5, 0x96, 0x90, 0x32, 0xAA, 0xD6, 0xCF, 0x35, - 0xB4, 0x81, 0x2E, 0x01, 0x10, 0x49, 0x70, 0xDE, - 0xDD, 0x88, 0xB9, 0x6D, 0x60, 0xBB, 0x44, 0xF8, - 0x3C, 0xEC, 0x34, 0x82, 0x95, 0x72, 0x58, 0x4E, - 0xE4, 0x0D, 0xBE, 0xDA, 0x83, 0x4A, 0x00, 0xBF, - 0xD0, 0xC8, 0x26, 0xB3, 0x65, 0x1A, 0x69, 0xCA, - 0xF3, 0xD7, 0x6F, 0x55, 0xE2, 0xFF, 0x5D, 0xDC, - 0x20, 0xF6, 0x63, 0xED, 0xE0, 0x59, 0x9D, 0xB1, - 0x1D, 0xAD, 0x91, 0xA1, 0xB7, 0xA9, 0xDF, 0xC0, - 0x39, 0xD1, 0x43, 0xCE, 0x4F, 0x5C, 0xE7, 0x37, - 0x5E, 0x33, 0x5B, 0xA6, 0xC2, 0xB0, 0xBA, 0x30, - 0x6A, 0x78, 0xB5, 0x71, 0x56, 0x87, 0x7F, 0x86 }; - -static const unsigned char table_83[32] = { - 0x1B, 0x0A, 0x1F, 0x01, 0x10, 0x08, 0x0E, 0x18, - 0x06, 0x04, 0x00, 0x1C, 0x0C, 0x19, 0x0D, 0x16, - 0x02, 0x03, 0x09, 0x07, 0x13, 0x0F, 0x05, 0x12, - 0x17, 0x1E, 0x1A, 0x1D, 0x0B, 0x11, 0x14, 0x15 }; - -static const unsigned char table_84[32] = { - 0x02, 0x1A, 0x0D, 0x15, 0x01, 0x16, 0x1E, 0x00, - 0x08, 0x1B, 0x04, 0x10, 0x1C, 0x18, 0x19, 0x14, - 0x0C, 0x11, 0x0B, 0x0E, 0x03, 0x0A, 0x07, 0x12, - 0x1D, 0x17, 0x13, 0x06, 0x0F, 0x05, 0x09, 0x1F }; - -static const unsigned char table_85[256] = { - 0xC6, 0x7C, 0xCE, 0xBD, 0x84, 0x3E, 0x0B, 0xD8, - 0xFE, 0xCC, 0x46, 0x50, 0xD1, 0xFB, 0xA0, 0x6D, - 0xEA, 0xE2, 0x40, 0x51, 0x13, 0xB0, 0xD6, 0xB1, - 0xA8, 0xDF, 0x61, 0xA4, 0x80, 0x21, 0xB3, 0x33, - 0x06, 0x6B, 0xE3, 0x8C, 0xA1, 0x18, 0xBA, 0x03, - 0xD7, 0x8D, 0x54, 0x12, 0x4C, 0xEE, 0x9E, 0xCF, - 0x04, 0x2A, 0x08, 0xBB, 0xC2, 0xD4, 0xC3, 0x4A, - 0xD5, 0xFA, 0x36, 0x2F, 0x14, 0x3F, 0xED, 0x05, - 0x17, 0x28, 0x75, 0xFC, 0xA2, 0x1F, 0x4B, 0x6F, - 0x91, 0x7E, 0x4E, 0x96, 0x3B, 0xF3, 0x1D, 0x78, - 0xEB, 0x68, 0xF1, 0xA7, 0x9F, 0xC7, 0x59, 0x6C, - 0x92, 0xE6, 0x66, 0x07, 0x8A, 0x25, 0x26, 0x72, - 0x30, 0x5A, 0x81, 0x2C, 0x58, 0x32, 0xCB, 0xE0, - 0xF9, 0x48, 0x83, 0x9B, 0xA5, 0xE1, 0xA6, 0x64, - 0xFF, 0xC9, 0x8F, 0x53, 0x3D, 0x24, 0xC8, 0xDE, - 0x02, 0x7D, 0x09, 0xB4, 0x0A, 0x95, 0x0F, 0xE4, - 0xDB, 0xB7, 0x71, 0x4D, 0x1C, 0xAC, 0x35, 0xCD, - 0x29, 0xDD, 0xC1, 0xF2, 0xF4, 0xC0, 0x5C, 0x74, - 0xDC, 0x87, 0xFD, 0x4F, 0x11, 0x0E, 0x5D, 0x3C, - 0x01, 0x73, 0xE9, 0xD9, 0x10, 0x9A, 0x5B, 0xC5, - 0x98, 0x34, 0x15, 0xAE, 0xF7, 0xAA, 0x67, 0x23, - 0xBC, 0x8B, 0x7B, 0x65, 0xA9, 0xB6, 0x77, 0x00, - 0x19, 0x0C, 0x5E, 0x99, 0xF0, 0x55, 0x86, 0x97, - 0x69, 0xDA, 0x38, 0x9C, 0x16, 0xE8, 0x27, 0xAF, - 0x2E, 0x47, 0x6A, 0xD0, 0x79, 0x44, 0x45, 0x2B, - 0x5F, 0x85, 0xF5, 0x62, 0x70, 0x22, 0x7F, 0xF6, - 0x88, 0x93, 0x60, 0x42, 0x3A, 0x39, 0x49, 0x6E, - 0x89, 0x52, 0x20, 0xF8, 0xCA, 0xD2, 0x76, 0xB9, - 0xAB, 0x7A, 0x9D, 0xD3, 0xBE, 0x1A, 0xAD, 0x41, - 0x56, 0x31, 0x90, 0xB5, 0xB2, 0xEC, 0xA3, 0xE5, - 0x8E, 0x1B, 0xEF, 0xBF, 0x94, 0xC4, 0x0D, 0xB8, - 0x2D, 0x57, 0xE7, 0x82, 0x1E, 0x37, 0x63, 0x43 }; - -static const unsigned char table_86[32] = { - 0x11, 0x07, 0x0F, 0x0A, 0x19, 0x1D, 0x0B, 0x09, - 0x1C, 0x1E, 0x14, 0x06, 0x0C, 0x16, 0x13, 0x04, - 0x15, 0x18, 0x00, 0x0D, 0x12, 0x05, 0x08, 0x02, - 0x10, 0x1A, 0x1F, 0x01, 0x17, 0x0E, 0x03, 0x1B }; - -static const unsigned char table_87[32] = { - 0x17, 0x0E, 0x1D, 0x13, 0x0B, 0x19, 0x03, 0x06, - 0x09, 0x01, 0x0D, 0x15, 0x1C, 0x16, 0x18, 0x1B, - 0x11, 0x10, 0x00, 0x1E, 0x1F, 0x08, 0x12, 0x0F, - 0x02, 0x04, 0x07, 0x1A, 0x14, 0x0A, 0x0C, 0x05 }; - -static const unsigned char table_88[32] = { - 0x09, 0x08, 0x17, 0x10, 0x0A, 0x07, 0x1C, 0x1F, - 0x04, 0x0E, 0x01, 0x0C, 0x0D, 0x1B, 0x03, 0x15, - 0x02, 0x1E, 0x18, 0x19, 0x0F, 0x06, 0x1A, 0x0B, - 0x05, 0x11, 0x14, 0x00, 0x16, 0x1D, 0x12, 0x13 }; - -static const unsigned char table_89[32] = { - 0x15, 0x1C, 0x1D, 0x14, 0x0F, 0x1A, 0x05, 0x02, - 0x07, 0x09, 0x06, 0x08, 0x1F, 0x00, 0x10, 0x13, - 0x0D, 0x03, 0x0C, 0x18, 0x0E, 0x16, 0x1B, 0x1E, - 0x12, 0x04, 0x11, 0x0A, 0x01, 0x0B, 0x17, 0x19 }; - -static const unsigned char table_90[256] = { - 0x62, 0x36, 0x64, 0x0E, 0x4C, 0x6C, 0xBE, 0xCF, - 0x25, 0x5A, 0x3D, 0x12, 0x54, 0x9F, 0xE7, 0xA5, - 0xDE, 0xD7, 0xB2, 0x60, 0x18, 0x8D, 0x89, 0x70, - 0x48, 0x66, 0x1C, 0xA6, 0x17, 0x9B, 0xDF, 0x9A, - 0x82, 0xB9, 0x2E, 0xFA, 0x83, 0x5B, 0x7A, 0x61, - 0xFC, 0x6B, 0x8B, 0x4E, 0x0F, 0xAD, 0x78, 0xE1, - 0xE8, 0x15, 0x1A, 0xF7, 0xA3, 0x3A, 0x04, 0xE3, - 0x30, 0x8C, 0x06, 0xC4, 0x05, 0x32, 0x1F, 0x6A, - 0xB8, 0x37, 0x58, 0xF5, 0x74, 0x63, 0xD4, 0xAC, - 0xA4, 0xF3, 0xEC, 0xBB, 0x8E, 0x65, 0xA0, 0xEE, - 0x6D, 0x11, 0xDD, 0xEA, 0x68, 0x2B, 0xDA, 0x0B, - 0xEF, 0xC3, 0x8F, 0x03, 0x77, 0x1B, 0xFB, 0x1E, - 0x5C, 0xD9, 0xCB, 0x33, 0x55, 0xF1, 0xA1, 0xF9, - 0x7C, 0x38, 0x95, 0x00, 0x6E, 0x85, 0xC2, 0x7F, - 0xBF, 0x84, 0x2A, 0x13, 0x72, 0x81, 0xE9, 0x59, - 0x41, 0x69, 0x3B, 0x0C, 0x90, 0xB4, 0x51, 0x2F, - 0xA2, 0xFE, 0xF8, 0x49, 0x57, 0xE5, 0x96, 0xFF, - 0xCD, 0xD5, 0xCE, 0xAA, 0x40, 0xB0, 0x4D, 0xBA, - 0xDB, 0xC7, 0x46, 0x86, 0xD1, 0xCA, 0xC0, 0x67, - 0x9C, 0x21, 0xAE, 0xB3, 0x7B, 0x87, 0xE2, 0x71, - 0xE6, 0x39, 0xA8, 0x22, 0x07, 0x2C, 0x44, 0x52, - 0xA7, 0xF0, 0x4A, 0x92, 0x56, 0x28, 0x43, 0x8A, - 0x5E, 0x53, 0x93, 0x47, 0x97, 0x88, 0x76, 0x79, - 0x91, 0x26, 0xC1, 0x3F, 0xB7, 0xF6, 0x3E, 0x80, - 0xA9, 0xC6, 0x01, 0xD2, 0xEB, 0x9E, 0x4B, 0xBC, - 0xC8, 0xB5, 0x02, 0x5F, 0x98, 0x9D, 0x5D, 0x35, - 0xD0, 0x16, 0xB1, 0x23, 0x7D, 0xAF, 0x10, 0x3C, - 0xAB, 0x14, 0x09, 0x2D, 0x0D, 0xC5, 0x1D, 0xD6, - 0x42, 0xF2, 0x34, 0x73, 0xF4, 0xFD, 0xE0, 0x24, - 0x6F, 0xD3, 0x75, 0xD8, 0xCC, 0xB6, 0x99, 0x4F, - 0x29, 0x0A, 0x08, 0xE4, 0x27, 0x19, 0x31, 0xC9, - 0x20, 0x94, 0x45, 0xED, 0xDC, 0xBD, 0x7E, 0x50 }; - -static const unsigned char table_91[32] = { - 0x03, 0x04, 0x0C, 0x18, 0x10, 0x0D, 0x13, 0x1B, - 0x1F, 0x07, 0x11, 0x17, 0x1C, 0x1D, 0x05, 0x06, - 0x0A, 0x12, 0x02, 0x1A, 0x0B, 0x01, 0x0E, 0x08, - 0x14, 0x16, 0x00, 0x15, 0x19, 0x09, 0x0F, 0x1E }; - -static const unsigned char table_92[32] = { - 0x1E, 0x10, 0x01, 0x07, 0x11, 0x16, 0x15, 0x17, - 0x1F, 0x14, 0x0C, 0x1C, 0x06, 0x03, 0x00, 0x18, - 0x08, 0x0E, 0x02, 0x1B, 0x09, 0x0D, 0x19, 0x05, - 0x0F, 0x12, 0x0B, 0x13, 0x0A, 0x04, 0x1D, 0x1A }; - -static const unsigned char table_93[256] = { - 0x76, 0x78, 0xA2, 0x94, 0x0E, 0x7F, 0xDF, 0xC1, - 0xB9, 0xE1, 0x3D, 0x59, 0x6F, 0x1E, 0x53, 0x99, - 0x80, 0xE3, 0x21, 0xF8, 0x65, 0xB8, 0x08, 0xBC, - 0x29, 0x17, 0xFD, 0x33, 0x35, 0xF2, 0x70, 0xC7, - 0x25, 0xD0, 0xCD, 0x7A, 0xB7, 0x9B, 0xA5, 0xC3, - 0x00, 0x90, 0xDC, 0xB1, 0x0C, 0x20, 0x67, 0x8D, - 0x43, 0x49, 0xF3, 0x96, 0x14, 0x1A, 0xC8, 0x19, - 0x72, 0xD7, 0x8A, 0x38, 0x66, 0xDA, 0xDD, 0x2E, - 0xBE, 0xD5, 0x91, 0x7C, 0x3A, 0x92, 0x8E, 0xE7, - 0x51, 0xB5, 0xA8, 0xD9, 0x0B, 0x2A, 0xBA, 0x81, - 0x41, 0x0F, 0xBD, 0x4E, 0x31, 0x23, 0x9C, 0x8B, - 0x2B, 0x1D, 0x04, 0x3E, 0x8C, 0xF0, 0x45, 0xA0, - 0x1C, 0x44, 0x55, 0x5E, 0xF1, 0x98, 0x54, 0x5D, - 0x9D, 0x84, 0xAE, 0x09, 0xA9, 0xC5, 0x83, 0x60, - 0x86, 0x95, 0xB4, 0xFA, 0x6B, 0xA7, 0x9A, 0xCA, - 0x8F, 0x4F, 0x0A, 0x7B, 0xB0, 0x02, 0xEA, 0xA4, - 0x18, 0xDB, 0xD3, 0x64, 0xEB, 0xFC, 0xC4, 0xC9, - 0xF5, 0xD6, 0xCC, 0x75, 0x0D, 0x5C, 0x93, 0x4A, - 0x6D, 0xC0, 0x1F, 0x50, 0xE6, 0x16, 0xEE, 0x07, - 0xFB, 0x74, 0x56, 0x58, 0x52, 0x89, 0x79, 0x68, - 0xB6, 0xFE, 0x01, 0xD4, 0x7E, 0x06, 0xBF, 0xCB, - 0x5B, 0xC2, 0xC6, 0x32, 0xAC, 0x26, 0x22, 0xD2, - 0x82, 0x46, 0x69, 0x15, 0x2C, 0xF7, 0xAD, 0x13, - 0x4D, 0xA3, 0xF6, 0x2D, 0x48, 0x71, 0x57, 0x11, - 0x63, 0x05, 0x5F, 0x9E, 0x4B, 0xAB, 0xA6, 0x61, - 0xBB, 0xA1, 0x3C, 0x97, 0xF9, 0x03, 0x40, 0x12, - 0xCF, 0x37, 0xE4, 0x10, 0x6A, 0xED, 0xFF, 0x62, - 0x42, 0x4C, 0xAF, 0x9F, 0xE5, 0xE8, 0xD8, 0xD1, - 0x28, 0x3F, 0x1B, 0xE9, 0xCE, 0x6C, 0x27, 0x88, - 0xEF, 0x2F, 0xE0, 0x30, 0x87, 0x5A, 0x73, 0xB3, - 0x6E, 0x3B, 0x7D, 0x77, 0x36, 0xAA, 0x39, 0xDE, - 0x24, 0x34, 0xE2, 0xEC, 0x85, 0x47, 0xF4, 0xB2 }; - -static const unsigned char table_94[32] = { - 0x1C, 0x07, 0x05, 0x1A, 0x10, 0x1D, 0x14, 0x12, - 0x08, 0x0F, 0x0C, 0x01, 0x04, 0x1B, 0x16, 0x0A, - 0x11, 0x02, 0x1F, 0x13, 0x0D, 0x1E, 0x17, 0x06, - 0x0E, 0x09, 0x15, 0x19, 0x03, 0x18, 0x00, 0x0B }; - -static const unsigned char table_95[32] = { - 0x12, 0x10, 0x11, 0x15, 0x03, 0x0A, 0x14, 0x05, - 0x1D, 0x07, 0x17, 0x0D, 0x09, 0x08, 0x1B, 0x1F, - 0x0B, 0x06, 0x19, 0x0E, 0x18, 0x04, 0x00, 0x02, - 0x1E, 0x1C, 0x01, 0x0C, 0x1A, 0x0F, 0x13, 0x16 }; - -static const unsigned char table_96[256] = { - 0x1C, 0x6E, 0xCD, 0xB4, 0xB3, 0x93, 0xA8, 0x2E, - 0x4F, 0x09, 0xE3, 0x72, 0x64, 0x13, 0x21, 0xF5, - 0x89, 0xB2, 0xD2, 0x22, 0x5D, 0x63, 0x90, 0xC4, - 0x42, 0x9B, 0x07, 0xCA, 0x16, 0x19, 0x5C, 0x2B, - 0x3D, 0xA0, 0x69, 0x5F, 0x52, 0x41, 0x66, 0xC0, - 0x55, 0xDA, 0x82, 0x40, 0x25, 0x02, 0x3C, 0xDD, - 0xAE, 0xD7, 0xD6, 0xDB, 0x04, 0x78, 0x05, 0x4A, - 0x4C, 0x81, 0x00, 0xBE, 0x45, 0xC5, 0x30, 0xB0, - 0x65, 0x5A, 0xA9, 0x38, 0x75, 0x26, 0x85, 0x4E, - 0xF0, 0xA2, 0x91, 0x8A, 0x54, 0xD0, 0x3E, 0x0D, - 0xFE, 0xF2, 0x0A, 0x23, 0x24, 0x37, 0x32, 0x0B, - 0xCB, 0xB5, 0x28, 0x6A, 0x95, 0x49, 0x53, 0x9A, - 0xEE, 0x2C, 0x9D, 0xD4, 0x1D, 0x46, 0xC9, 0x79, - 0xCC, 0xDF, 0x17, 0xE8, 0x6D, 0x29, 0x0E, 0x80, - 0xE0, 0x62, 0xA1, 0xFA, 0x10, 0xF6, 0x03, 0xC1, - 0x15, 0x14, 0x1F, 0x99, 0x97, 0xD5, 0x9E, 0x3F, - 0x7B, 0x2F, 0xEF, 0x2A, 0x68, 0x83, 0xE2, 0x1B, - 0xC8, 0x87, 0x12, 0x70, 0xC7, 0x36, 0xD3, 0x73, - 0x8B, 0x7D, 0x47, 0x9F, 0xD9, 0xFB, 0x6C, 0x5B, - 0xFC, 0xAA, 0xB9, 0xB1, 0x0C, 0x31, 0x8E, 0xF3, - 0x92, 0xA3, 0x4B, 0xF1, 0xC2, 0x3A, 0x67, 0xEA, - 0x77, 0x11, 0xB6, 0xE4, 0x1A, 0x33, 0xD1, 0xBA, - 0xF9, 0xAC, 0x43, 0xE5, 0xC3, 0xC6, 0xFD, 0xF4, - 0x44, 0x6F, 0xB7, 0x88, 0xA7, 0xF8, 0x34, 0x94, - 0x6B, 0x27, 0xDE, 0x1E, 0xDC, 0x01, 0x61, 0x50, - 0xAD, 0x74, 0x4D, 0x86, 0xF7, 0x8D, 0x9C, 0x0F, - 0x5E, 0xBD, 0x08, 0x84, 0x18, 0xED, 0xA5, 0x39, - 0xAB, 0x98, 0x48, 0xE6, 0x2D, 0x96, 0xCF, 0x7F, - 0xFF, 0xBB, 0x8F, 0xEC, 0xBF, 0xE7, 0x56, 0xA4, - 0x35, 0x76, 0xA6, 0xAF, 0xBC, 0x71, 0xE9, 0xB8, - 0x7E, 0x7C, 0x06, 0x3B, 0xEB, 0x60, 0x7A, 0x8C, - 0x59, 0xCE, 0xE1, 0x57, 0x20, 0x58, 0x51, 0xD8 }; - -static const unsigned char table_97[256] = { - 0x15, 0x2D, 0xAF, 0x36, 0xCF, 0xD3, 0xD0, 0xED, - 0xB2, 0x1B, 0xFE, 0x92, 0xBD, 0xAD, 0x58, 0x0F, - 0x76, 0x3C, 0x47, 0x03, 0x2E, 0x4C, 0x40, 0xF7, - 0x39, 0xA7, 0x72, 0x22, 0x95, 0xF3, 0x8C, 0xE0, - 0x79, 0xB6, 0x75, 0x82, 0x94, 0x8F, 0x44, 0xFC, - 0xB0, 0x05, 0xE9, 0x10, 0x68, 0xE7, 0xF1, 0xA5, - 0xA8, 0xE2, 0x6F, 0xBE, 0xE5, 0x54, 0xA2, 0xC6, - 0xDB, 0x1C, 0x9E, 0x6D, 0x14, 0xA1, 0x26, 0x34, - 0x1E, 0x1A, 0x06, 0x53, 0xEE, 0x67, 0xA9, 0x73, - 0xD5, 0x59, 0x2F, 0x61, 0xE6, 0x74, 0xD6, 0x97, - 0xC0, 0x0C, 0xB1, 0x6E, 0x6C, 0x33, 0xC8, 0x77, - 0x8B, 0x49, 0x43, 0xE3, 0xB5, 0xDE, 0x6A, 0xA0, - 0x78, 0x2A, 0xC9, 0xF9, 0x9A, 0xDC, 0x90, 0x55, - 0xF4, 0x16, 0x5E, 0x3F, 0xC5, 0x7C, 0xFA, 0x09, - 0x8E, 0x87, 0xF2, 0x9D, 0x70, 0x27, 0x9B, 0xC4, - 0xCD, 0x91, 0x4B, 0xB4, 0x18, 0xE1, 0x3D, 0x5D, - 0x7A, 0xEA, 0xF0, 0x65, 0xB9, 0xF6, 0xC3, 0x66, - 0x21, 0x96, 0xD1, 0xB8, 0x56, 0x62, 0x48, 0x28, - 0x3A, 0x86, 0x63, 0xD4, 0xD7, 0x41, 0x8D, 0x20, - 0xC2, 0x98, 0x37, 0xD8, 0x85, 0x42, 0x0D, 0x31, - 0x84, 0x4E, 0x11, 0x46, 0x2B, 0x19, 0xCC, 0xB7, - 0x69, 0x13, 0x6B, 0x29, 0x38, 0x7E, 0x0E, 0xD2, - 0x3B, 0x60, 0x89, 0x7F, 0xEF, 0x07, 0x08, 0xCA, - 0xBF, 0x3E, 0xA3, 0xAA, 0x52, 0x4A, 0x45, 0x00, - 0xC7, 0xF8, 0x57, 0xEB, 0x93, 0x9C, 0x4D, 0x7B, - 0x2C, 0xBB, 0xFB, 0xFF, 0x35, 0x4F, 0x32, 0xA6, - 0x23, 0x8A, 0xDD, 0x12, 0xA4, 0x81, 0x17, 0x1D, - 0x1F, 0xCB, 0x0A, 0x71, 0x02, 0xAC, 0xDF, 0x24, - 0xAB, 0x7D, 0x30, 0x5C, 0x01, 0x5A, 0xBA, 0xEC, - 0x51, 0xF5, 0x0B, 0x64, 0xCE, 0xAE, 0x5B, 0x50, - 0x80, 0x88, 0xE8, 0x5F, 0x04, 0xDA, 0xE4, 0xBC, - 0x83, 0x25, 0x9F, 0xD9, 0x99, 0xC1, 0xFD, 0xB3 }; - -static const unsigned char table_98[256] = { - 0xC8, 0xE6, 0x38, 0x93, 0xE5, 0x03, 0x18, 0x1F, - 0xE9, 0x5A, 0xB6, 0xAF, 0xC3, 0x95, 0x00, 0x51, - 0xC0, 0xFD, 0x32, 0xE8, 0x96, 0x57, 0xF0, 0xAA, - 0xDC, 0x71, 0xF8, 0x01, 0x40, 0x0A, 0x4F, 0xB0, - 0x1B, 0x9D, 0x16, 0x92, 0xF3, 0x5E, 0xA9, 0x3C, - 0xBE, 0x6A, 0xA7, 0xE3, 0x35, 0x0D, 0xAD, 0xDB, - 0x48, 0xE0, 0x7E, 0xC6, 0xB4, 0x6D, 0x17, 0x41, - 0x3E, 0xE2, 0x87, 0x12, 0xE1, 0x53, 0xD9, 0x8A, - 0xAC, 0xA6, 0xD8, 0xFA, 0x36, 0x0B, 0x06, 0xDF, - 0x6C, 0x4E, 0xA4, 0xBC, 0xC9, 0xEE, 0x44, 0x26, - 0xF2, 0xE4, 0x9E, 0x34, 0xEF, 0x05, 0x0F, 0x7F, - 0xD1, 0xCD, 0x67, 0x28, 0xC1, 0x8E, 0x7D, 0x90, - 0x8F, 0x60, 0x1E, 0x19, 0xBD, 0x77, 0xB8, 0xD5, - 0x3D, 0x8C, 0x31, 0x99, 0x08, 0xDD, 0x04, 0x30, - 0x61, 0xFB, 0xEB, 0x98, 0x15, 0xFC, 0x10, 0xDE, - 0x20, 0xBA, 0xA1, 0xB3, 0xD4, 0x91, 0x6F, 0x9F, - 0x94, 0x5B, 0x42, 0xCB, 0x75, 0x1C, 0xBB, 0x5C, - 0x5D, 0xD6, 0x66, 0x50, 0xB9, 0xF1, 0x82, 0x7B, - 0x33, 0x23, 0x4A, 0xA5, 0x55, 0x97, 0xEA, 0x37, - 0xF4, 0x64, 0x6E, 0xBF, 0x8B, 0xB1, 0x07, 0x9A, - 0x43, 0x11, 0x65, 0xC2, 0x02, 0xDA, 0x9B, 0x25, - 0xCA, 0x3B, 0x7A, 0xCE, 0xA8, 0xCF, 0xF7, 0x56, - 0x6B, 0xF9, 0x47, 0x2A, 0x2E, 0x1D, 0x2D, 0xE7, - 0x46, 0xD0, 0x62, 0x4C, 0x80, 0x4B, 0x2B, 0xF5, - 0x69, 0x9C, 0x45, 0xED, 0x83, 0xAB, 0x74, 0x39, - 0xA3, 0x85, 0xD7, 0x5F, 0xB2, 0x86, 0x22, 0x29, - 0x89, 0x49, 0x1A, 0xC4, 0x52, 0xEC, 0x8D, 0x73, - 0xD3, 0x7C, 0x79, 0xD2, 0x14, 0x4D, 0x84, 0xA2, - 0x0E, 0x70, 0x78, 0x72, 0xB7, 0xA0, 0xC5, 0x81, - 0x58, 0x0C, 0x68, 0x27, 0xFF, 0xF6, 0xAE, 0xCC, - 0x88, 0xFE, 0x24, 0x2F, 0x76, 0x3F, 0x59, 0x21, - 0x54, 0x3A, 0x13, 0x09, 0x2C, 0xB5, 0xC7, 0x63 }; - -static const unsigned char table_99[32] = { - 0x19, 0x00, 0x10, 0x18, 0x09, 0x11, 0x13, 0x1D, - 0x08, 0x1A, 0x02, 0x05, 0x03, 0x17, 0x12, 0x01, - 0x1F, 0x14, 0x06, 0x07, 0x15, 0x0D, 0x0F, 0x0B, - 0x0E, 0x16, 0x1E, 0x04, 0x1B, 0x0A, 0x0C, 0x1C }; - -static const unsigned char table_100[256] = { - 0x9B, 0x3A, 0xAE, 0x60, 0x27, 0x67, 0x1E, 0x4E, - 0x91, 0xDA, 0x85, 0x43, 0x5C, 0xCC, 0x89, 0x55, - 0x75, 0x56, 0xF2, 0x86, 0xEB, 0xC4, 0x0D, 0xE6, - 0x63, 0x88, 0x38, 0x59, 0x68, 0xD0, 0x18, 0xF0, - 0xBA, 0x28, 0xF5, 0x80, 0x02, 0x5B, 0xE1, 0xA4, - 0x7A, 0x4B, 0x8E, 0xF7, 0x9E, 0x99, 0x70, 0xEF, - 0x66, 0x50, 0xB1, 0xCD, 0x9A, 0xAF, 0x5F, 0x21, - 0xE5, 0x5D, 0x14, 0xD4, 0x34, 0x22, 0xC3, 0x0F, - 0x44, 0xB6, 0x92, 0xCE, 0xB4, 0x6E, 0xB0, 0x00, - 0xF9, 0xB5, 0x10, 0xEA, 0x45, 0x2F, 0x2B, 0xF4, - 0xF6, 0xFE, 0xCB, 0x0A, 0x42, 0xF8, 0xE7, 0xFD, - 0xC8, 0xC2, 0x6C, 0x9C, 0x57, 0xA1, 0x46, 0x04, - 0xE9, 0x97, 0x40, 0x32, 0x19, 0xFA, 0x51, 0xD1, - 0x6D, 0x4C, 0x2A, 0xD9, 0x95, 0x26, 0x72, 0x1B, - 0x83, 0x93, 0x5A, 0x15, 0x33, 0xC5, 0x77, 0x13, - 0xE0, 0x36, 0x37, 0xDB, 0xA7, 0xC7, 0x81, 0x62, - 0xC1, 0x47, 0x64, 0x74, 0x1D, 0x84, 0x29, 0x39, - 0x41, 0x35, 0x09, 0x90, 0x20, 0x9F, 0x8C, 0x7D, - 0x3E, 0x07, 0xB9, 0x76, 0x06, 0xA3, 0x31, 0x7F, - 0x49, 0x6F, 0x3D, 0xD5, 0x25, 0xAC, 0xDF, 0x0B, - 0x3C, 0x79, 0x01, 0x8F, 0x82, 0x2E, 0xFC, 0x98, - 0xA5, 0x58, 0xA0, 0x4A, 0x7C, 0x24, 0xDD, 0x05, - 0x4D, 0x12, 0xBC, 0xAA, 0xE2, 0xAB, 0xD3, 0xBF, - 0x94, 0x2D, 0x54, 0xBB, 0xAD, 0xB7, 0x6A, 0xE3, - 0xBD, 0x5E, 0x8D, 0x08, 0x3B, 0xB8, 0x73, 0x8A, - 0x16, 0xD2, 0x69, 0xE8, 0xEE, 0x53, 0xD8, 0xDC, - 0x48, 0xCF, 0xC6, 0xA9, 0x1A, 0xCA, 0x17, 0x11, - 0xED, 0xC0, 0xA6, 0x1F, 0x96, 0x8B, 0xFF, 0x78, - 0x03, 0x61, 0x1C, 0xA8, 0x3F, 0x9D, 0x0E, 0xC9, - 0xE4, 0xA2, 0x52, 0xEC, 0x4F, 0xD6, 0xF3, 0x6B, - 0x87, 0xB3, 0x7E, 0xDE, 0xD7, 0x71, 0x65, 0xF1, - 0x30, 0x0C, 0xB2, 0x7B, 0xBE, 0xFB, 0x23, 0x2C }; - -static const unsigned char table_101[32] = { - 0x18, 0x08, 0x14, 0x17, 0x03, 0x10, 0x19, 0x04, - 0x0D, 0x1C, 0x06, 0x1D, 0x1E, 0x12, 0x11, 0x0B, - 0x0F, 0x02, 0x0E, 0x1B, 0x13, 0x05, 0x07, 0x16, - 0x15, 0x0A, 0x0C, 0x1A, 0x00, 0x01, 0x1F, 0x09 }; - -static const unsigned char table_102[32] = { - 0x17, 0x1F, 0x0E, 0x05, 0x13, 0x0C, 0x14, 0x1A, - 0x0F, 0x01, 0x12, 0x1C, 0x00, 0x07, 0x0D, 0x02, - 0x10, 0x16, 0x04, 0x11, 0x1D, 0x03, 0x1E, 0x18, - 0x06, 0x15, 0x0A, 0x19, 0x09, 0x08, 0x1B, 0x0B }; - -static const unsigned char table_103[32] = { - 0x0F, 0x09, 0x1E, 0x11, 0x0D, 0x08, 0x10, 0x00, - 0x01, 0x1F, 0x1D, 0x1C, 0x12, 0x04, 0x07, 0x05, - 0x19, 0x14, 0x1B, 0x02, 0x1A, 0x15, 0x17, 0x16, - 0x18, 0x0B, 0x0A, 0x13, 0x0C, 0x0E, 0x03, 0x06 }; - -static const unsigned char table_104[256] = { - 0xA4, 0x9F, 0x78, 0x39, 0x3D, 0x81, 0x51, 0x24, - 0x46, 0x2A, 0x56, 0xE8, 0xDF, 0x73, 0xA8, 0xA2, - 0x0D, 0xDC, 0xA5, 0x4F, 0xF0, 0x93, 0xC0, 0x76, - 0x38, 0x70, 0xB0, 0x30, 0x98, 0x13, 0x8B, 0x14, - 0x26, 0x45, 0x0F, 0x7D, 0x34, 0x72, 0x6B, 0x89, - 0x43, 0xE2, 0x96, 0x5B, 0xEF, 0x2B, 0xF9, 0xDE, - 0x82, 0xB5, 0x61, 0x4A, 0x17, 0xC2, 0x5A, 0xCB, - 0xB2, 0x8D, 0xE4, 0xEC, 0xD9, 0x80, 0xBC, 0x62, - 0x67, 0x11, 0xA9, 0x3A, 0xE1, 0xC4, 0xEA, 0xD2, - 0x71, 0xD0, 0xDB, 0xE5, 0x7B, 0x08, 0x77, 0xD6, - 0x10, 0x19, 0x48, 0xEB, 0xAA, 0x2C, 0x0C, 0x59, - 0xBE, 0xF6, 0x28, 0x50, 0x90, 0x87, 0xCD, 0x04, - 0x1F, 0x79, 0x99, 0x5C, 0x49, 0x06, 0x8A, 0x3E, - 0x5F, 0x5E, 0x15, 0x23, 0x2D, 0xB6, 0xA6, 0x7A, - 0x03, 0x20, 0xDA, 0xFB, 0x35, 0x75, 0xC7, 0x47, - 0xB9, 0x7C, 0xA1, 0xCE, 0xC5, 0xDD, 0xFD, 0x6C, - 0x05, 0xAC, 0x09, 0xB4, 0x95, 0xD1, 0xB1, 0x63, - 0xFF, 0xAE, 0xD5, 0x25, 0x1E, 0x6E, 0x57, 0x18, - 0x74, 0xE6, 0x2F, 0x9A, 0xE7, 0x42, 0x65, 0xF5, - 0x58, 0x27, 0x33, 0x9C, 0xCF, 0xB7, 0xC3, 0xF1, - 0x12, 0x1D, 0xB8, 0xF4, 0x64, 0x4D, 0xD4, 0xBD, - 0xE3, 0xAB, 0x44, 0x60, 0xAF, 0xCC, 0x0A, 0xFC, - 0xD3, 0x21, 0x0B, 0x1A, 0x6D, 0x83, 0xA7, 0x8E, - 0x3C, 0xC1, 0xED, 0xF3, 0x2E, 0x86, 0xC9, 0x41, - 0x02, 0xF7, 0xC8, 0x40, 0x1B, 0xF8, 0xF2, 0x07, - 0x5D, 0x4E, 0xC6, 0x29, 0xD7, 0x4B, 0x7E, 0x31, - 0x94, 0x32, 0x01, 0x92, 0xE9, 0x36, 0x0E, 0x7F, - 0x85, 0x16, 0xFA, 0x00, 0x88, 0x3F, 0x68, 0x4C, - 0x22, 0x55, 0xBF, 0x9D, 0xE0, 0x6A, 0xAD, 0xBA, - 0x91, 0xCA, 0xA3, 0x1C, 0xEE, 0xD8, 0x3B, 0x66, - 0x69, 0x9B, 0x84, 0xA0, 0xB3, 0x6F, 0xFE, 0x52, - 0x97, 0xBB, 0x37, 0x8C, 0x54, 0x53, 0x9E, 0x8F }; - -static const unsigned char table_105[256] = { - 0x7B, 0x35, 0x11, 0x79, 0x07, 0x2F, 0xF6, 0x82, - 0x8E, 0xB4, 0x6E, 0xD2, 0x6D, 0xC5, 0x8C, 0x1C, - 0xE0, 0xD6, 0x34, 0xF0, 0x4F, 0x25, 0x59, 0xE8, - 0xDF, 0x1D, 0xEB, 0x32, 0x86, 0x51, 0xA4, 0xF2, - 0x5C, 0xD1, 0xC8, 0x41, 0xEC, 0x9D, 0x62, 0xAC, - 0xDD, 0x3E, 0xB8, 0x65, 0x75, 0x89, 0x12, 0x6C, - 0x40, 0x4E, 0xC7, 0x27, 0xE1, 0x37, 0xCF, 0x09, - 0x16, 0x78, 0xAA, 0x58, 0x0D, 0xE6, 0x54, 0xFE, - 0x8F, 0xFD, 0xF9, 0x61, 0x26, 0x3F, 0x2E, 0xCD, - 0x2C, 0x04, 0xB2, 0x80, 0x0F, 0x14, 0x6F, 0xC6, - 0xAB, 0xFB, 0x13, 0xDB, 0x9A, 0x21, 0xB3, 0xC0, - 0xA9, 0x19, 0x70, 0xF3, 0x2B, 0xAE, 0x9B, 0x49, - 0xB7, 0xA8, 0x24, 0x1B, 0x48, 0xEA, 0xED, 0xD9, - 0x47, 0x9E, 0x9C, 0x69, 0x3C, 0x66, 0xBB, 0x06, - 0x46, 0x38, 0x17, 0xB5, 0xCB, 0x05, 0x4A, 0x5E, - 0x15, 0x20, 0xB9, 0xB6, 0x33, 0x4C, 0x7D, 0xA3, - 0xD7, 0xB1, 0x23, 0x72, 0xC3, 0x4B, 0x63, 0xBE, - 0xF7, 0x5B, 0x74, 0x64, 0x77, 0xCC, 0xD3, 0x85, - 0xDE, 0x1A, 0x31, 0x97, 0xA2, 0x8B, 0xFC, 0x10, - 0x5F, 0xDC, 0xD5, 0xB0, 0xBD, 0x55, 0xC1, 0xE7, - 0x0C, 0x50, 0x43, 0x39, 0x71, 0x52, 0xE5, 0xAF, - 0x8A, 0x60, 0x92, 0x2D, 0xD8, 0x03, 0xF5, 0x28, - 0xCA, 0xEF, 0xD0, 0xC2, 0x53, 0x91, 0xA6, 0x73, - 0x56, 0xA5, 0xF1, 0x57, 0x42, 0xF4, 0xD4, 0x36, - 0x8D, 0xBC, 0xE9, 0x7E, 0x02, 0x76, 0x18, 0x0B, - 0x84, 0x5A, 0xE2, 0xBF, 0x68, 0x95, 0x29, 0x98, - 0xAD, 0x88, 0x1F, 0x81, 0x67, 0xA1, 0x3A, 0xA7, - 0x22, 0xF8, 0x01, 0xA0, 0xCE, 0x7A, 0xDA, 0x30, - 0xC4, 0xE4, 0xEE, 0x7C, 0x3B, 0x4D, 0x3D, 0xE3, - 0xFA, 0x6A, 0x7F, 0x99, 0x00, 0x93, 0x0E, 0xFF, - 0x90, 0x0A, 0x2A, 0x5D, 0x96, 0x08, 0x6B, 0x83, - 0xBA, 0x1E, 0x44, 0x87, 0x45, 0x9F, 0xC9, 0x94 }; - -static const unsigned char table_106[32] = { - 0x03, 0x11, 0x07, 0x1B, 0x0F, 0x14, 0x0C, 0x01, - 0x04, 0x02, 0x09, 0x0A, 0x05, 0x12, 0x06, 0x1F, - 0x1C, 0x0E, 0x0D, 0x15, 0x18, 0x08, 0x00, 0x10, - 0x1E, 0x1D, 0x17, 0x19, 0x13, 0x16, 0x0B, 0x1A }; - -static const unsigned char table_107[32] = { - 0x13, 0x1B, 0x06, 0x11, 0x1C, 0x07, 0x08, 0x0E, - 0x10, 0x05, 0x09, 0x18, 0x04, 0x15, 0x1E, 0x0F, - 0x1F, 0x12, 0x02, 0x00, 0x17, 0x19, 0x1A, 0x0D, - 0x03, 0x0C, 0x0A, 0x1D, 0x14, 0x01, 0x16, 0x0B }; - -static const unsigned char table_108[256] = { - 0x99, 0xA3, 0x48, 0xE8, 0x5A, 0x7D, 0x97, 0xCA, - 0x7F, 0x06, 0x9B, 0x04, 0xE0, 0xF3, 0x18, 0xAE, - 0x59, 0xA0, 0x2B, 0x15, 0x85, 0x3E, 0x12, 0x93, - 0x3D, 0x28, 0x32, 0xF5, 0x20, 0x5D, 0x86, 0x00, - 0x1B, 0x2E, 0x36, 0x10, 0x5E, 0x6C, 0xD8, 0x29, - 0xB6, 0x3F, 0x05, 0x1C, 0xCE, 0xC2, 0x34, 0x5F, - 0x5C, 0x79, 0xD1, 0x1F, 0xA2, 0xEE, 0x8A, 0x69, - 0xB5, 0x87, 0x96, 0x6D, 0x4D, 0xC1, 0x61, 0x2C, - 0x11, 0xE7, 0x8E, 0xBF, 0x1E, 0x53, 0xD0, 0x58, - 0x76, 0xA4, 0x60, 0xA9, 0xB0, 0xF9, 0xEA, 0x3C, - 0x52, 0x9A, 0x24, 0xF1, 0x9F, 0xD3, 0x40, 0x0A, - 0x63, 0x78, 0x6A, 0x8B, 0x08, 0x22, 0x16, 0x83, - 0x6B, 0xD2, 0x49, 0x19, 0xBD, 0xFD, 0x62, 0x72, - 0xA8, 0x55, 0xAB, 0x0C, 0xB9, 0x13, 0xD5, 0xF0, - 0xF2, 0x84, 0xAF, 0x2F, 0x7B, 0x2A, 0x21, 0x0F, - 0xDA, 0x30, 0x71, 0xD6, 0x81, 0xE6, 0xEC, 0x41, - 0x90, 0x50, 0x66, 0x0E, 0xA7, 0xB8, 0xF7, 0x3A, - 0xB2, 0xCF, 0x3B, 0xFC, 0x56, 0x6F, 0xC3, 0xA6, - 0xC9, 0xA1, 0x8D, 0xBB, 0x9D, 0x75, 0xF6, 0xAA, - 0x7E, 0xF8, 0x33, 0xEF, 0xBC, 0x7C, 0x23, 0x1A, - 0x92, 0x6E, 0x2D, 0x8F, 0xED, 0xB7, 0xB1, 0x1D, - 0x67, 0x39, 0xAC, 0x0D, 0x74, 0xDB, 0x7A, 0x94, - 0x07, 0x09, 0xC0, 0xD7, 0xAD, 0xFE, 0x54, 0x91, - 0xDE, 0x45, 0xA5, 0x77, 0xCB, 0x37, 0xC6, 0x38, - 0x89, 0x88, 0x17, 0xD9, 0x4F, 0xDF, 0x25, 0xFB, - 0xFA, 0x4C, 0x80, 0x35, 0x82, 0xF4, 0x95, 0xC8, - 0xFF, 0xE9, 0x31, 0x01, 0x14, 0xB3, 0x02, 0x9E, - 0x4E, 0x43, 0x46, 0xC7, 0xEB, 0x51, 0xE5, 0x47, - 0xB4, 0xE3, 0xDC, 0x57, 0xC4, 0x98, 0x03, 0xE1, - 0xBA, 0x68, 0xCD, 0x27, 0xC5, 0x0B, 0xD4, 0x64, - 0x4B, 0x9C, 0x70, 0x65, 0x4A, 0xE4, 0x42, 0xDD, - 0xCC, 0xE2, 0x44, 0x73, 0xBE, 0x26, 0x8C, 0x5B }; - -static const unsigned char table_109[256] = { - 0xE3, 0x95, 0xDB, 0x09, 0x82, 0x0A, 0x8F, 0x9E, - 0xC9, 0xDC, 0x28, 0x35, 0x0F, 0x8B, 0xA8, 0xA5, - 0x7F, 0x3D, 0x8C, 0xD1, 0x93, 0x57, 0x04, 0xAA, - 0x6A, 0x98, 0x81, 0xDD, 0x16, 0x67, 0x2E, 0xDF, - 0xED, 0xF7, 0xB2, 0xBD, 0x14, 0xB6, 0x76, 0xC8, - 0x75, 0x9F, 0x48, 0xAE, 0xBB, 0xB0, 0xF3, 0xE2, - 0xD4, 0x59, 0xD8, 0x9C, 0x64, 0xC1, 0x73, 0x21, - 0x6D, 0x96, 0x7B, 0x62, 0x56, 0x55, 0xCC, 0xFD, - 0xCE, 0x41, 0xA3, 0x43, 0x33, 0xAF, 0x23, 0x9D, - 0x6F, 0x65, 0x19, 0x52, 0xAD, 0xC6, 0xD3, 0x3F, - 0x66, 0xFF, 0xD0, 0x30, 0x6C, 0xC0, 0xEB, 0xCF, - 0x51, 0x88, 0x38, 0x72, 0x69, 0x77, 0x3B, 0xFA, - 0xBA, 0xB7, 0xA1, 0x91, 0xE0, 0x89, 0xAB, 0x44, - 0x1B, 0x05, 0x5B, 0xB9, 0x71, 0x47, 0x7E, 0xFB, - 0x02, 0xC7, 0x99, 0x6E, 0x42, 0x20, 0x90, 0x1F, - 0x4A, 0x85, 0x1A, 0xEA, 0x0C, 0x0D, 0xB3, 0xDA, - 0xE7, 0x13, 0xE6, 0xD7, 0x6B, 0x12, 0x46, 0x53, - 0xB5, 0xF8, 0x1D, 0x83, 0x54, 0x49, 0x8A, 0x26, - 0x4D, 0xDE, 0xF6, 0x03, 0xA2, 0x7D, 0x0E, 0xA0, - 0x68, 0x79, 0xCA, 0x0B, 0x5D, 0x40, 0x4F, 0x80, - 0xC2, 0xD6, 0x87, 0x70, 0xF0, 0xD2, 0x92, 0xEE, - 0xBE, 0x74, 0x5F, 0xBC, 0xA4, 0x4B, 0xFE, 0x37, - 0x60, 0xA9, 0x06, 0xA7, 0xE1, 0xF5, 0x2B, 0x10, - 0xEF, 0x2C, 0x07, 0x86, 0x7A, 0x27, 0xE9, 0xC5, - 0xAC, 0x32, 0x22, 0xF2, 0xE5, 0x8D, 0x31, 0x01, - 0x34, 0xA6, 0xB8, 0xC3, 0x3C, 0xE4, 0x08, 0x94, - 0x15, 0x4E, 0xB4, 0x39, 0x58, 0x00, 0x3E, 0x29, - 0x45, 0x3A, 0x84, 0x36, 0xF1, 0x2A, 0x50, 0x11, - 0xC4, 0x5A, 0xFC, 0xBF, 0xD9, 0xF9, 0x17, 0x9B, - 0x8E, 0x18, 0x63, 0x4C, 0x2F, 0x78, 0x2D, 0x5E, - 0x9A, 0xCD, 0x24, 0xEC, 0x7C, 0x97, 0x61, 0xCB, - 0x1E, 0xF4, 0xD5, 0xB1, 0x5C, 0x25, 0xE8, 0x1C }; - -static const unsigned char table_110[256] = { - 0xC3, 0x06, 0x3C, 0xCB, 0xD2, 0x44, 0x9D, 0x48, - 0x28, 0xAA, 0xA9, 0xD0, 0x64, 0x25, 0x56, 0xCA, - 0xC2, 0xF8, 0x5C, 0xAE, 0x4E, 0x63, 0xB2, 0xE9, - 0x35, 0x11, 0xA8, 0x1A, 0x76, 0x15, 0xE0, 0x26, - 0x97, 0x99, 0xD4, 0x43, 0x80, 0xEE, 0xC1, 0x69, - 0xA6, 0x1E, 0x7A, 0x42, 0x55, 0x38, 0xBF, 0x75, - 0x0E, 0x29, 0xF5, 0xF3, 0x36, 0x7D, 0x51, 0xE8, - 0xE5, 0xEB, 0x68, 0x60, 0x0C, 0x70, 0xFD, 0xCC, - 0xE3, 0x23, 0x09, 0x6D, 0x2D, 0x6C, 0x5E, 0xB6, - 0x98, 0x8B, 0x1F, 0x50, 0x34, 0x8D, 0x10, 0x92, - 0x82, 0x85, 0xD5, 0x79, 0x02, 0xA4, 0x0A, 0xBC, - 0x40, 0xC6, 0xA3, 0x72, 0x8F, 0xC4, 0xA5, 0xE4, - 0x49, 0xD6, 0xCE, 0xA1, 0x12, 0x4F, 0x30, 0x31, - 0xDE, 0x2A, 0xF7, 0x95, 0xB5, 0x96, 0x14, 0x08, - 0xE6, 0x3D, 0x86, 0xF2, 0x47, 0x74, 0xB8, 0x5D, - 0x1D, 0x2B, 0x3A, 0x93, 0x7C, 0x6A, 0x01, 0xA0, - 0x9A, 0x4D, 0xB7, 0x71, 0xA7, 0x41, 0xC5, 0x65, - 0xC8, 0x89, 0xD1, 0x3E, 0x0D, 0xD8, 0xFF, 0x6F, - 0x7F, 0xA2, 0xFE, 0xD9, 0xF0, 0x4A, 0x07, 0x1C, - 0x0F, 0x6E, 0x03, 0x81, 0x1B, 0x05, 0xDF, 0x52, - 0xF1, 0x8A, 0xF9, 0xDD, 0x91, 0x3B, 0xD7, 0xE1, - 0x54, 0xAD, 0x90, 0x5A, 0x7B, 0xC7, 0x32, 0x62, - 0x16, 0x27, 0xB9, 0x66, 0x21, 0x88, 0xBD, 0x18, - 0x77, 0x8E, 0x94, 0x8C, 0x9B, 0x46, 0x9C, 0xB1, - 0xD3, 0x53, 0xB0, 0xBE, 0xAC, 0xAF, 0x73, 0x24, - 0xDA, 0x58, 0xE2, 0xFC, 0x78, 0xEA, 0xCD, 0xFA, - 0x37, 0xED, 0x13, 0x19, 0xC0, 0x59, 0x83, 0xBA, - 0x3F, 0x57, 0x00, 0x7E, 0xC9, 0x2E, 0x17, 0x5B, - 0x84, 0xF6, 0xE7, 0x22, 0xFB, 0x5F, 0x4C, 0x2C, - 0x61, 0x9F, 0x45, 0x39, 0xB3, 0xEC, 0x04, 0x87, - 0x67, 0xDC, 0x0B, 0xF4, 0x20, 0xAB, 0x6B, 0x9E, - 0x4B, 0xCF, 0xB4, 0x2F, 0xBB, 0xEF, 0xDB, 0x33 }; - -static const unsigned char table_111[32] = { - 0x09, 0x0F, 0x00, 0x15, 0x12, 0x17, 0x1A, 0x0D, - 0x1C, 0x0B, 0x01, 0x0A, 0x05, 0x1E, 0x1D, 0x0C, - 0x1B, 0x08, 0x19, 0x18, 0x14, 0x07, 0x0E, 0x03, - 0x10, 0x16, 0x11, 0x1F, 0x04, 0x06, 0x02, 0x13 }; - -static const unsigned char table_112[256] = { - 0xF9, 0x7D, 0xBE, 0xD5, 0x9F, 0xB8, 0x95, 0x43, - 0xDB, 0xAE, 0x7E, 0xEC, 0x5B, 0x58, 0x18, 0x49, - 0x4B, 0x9D, 0x1C, 0x3E, 0x61, 0xD1, 0xF6, 0x2F, - 0x41, 0x82, 0x51, 0x37, 0x72, 0x79, 0x05, 0x2A, - 0xC2, 0xB0, 0xE2, 0xE7, 0xB2, 0xF3, 0x1B, 0x92, - 0x86, 0xBB, 0xDC, 0x90, 0x1A, 0x19, 0xD7, 0xBA, - 0x2C, 0x7B, 0xEF, 0xC7, 0x8A, 0x81, 0xEB, 0xDE, - 0x73, 0x4E, 0xB7, 0x97, 0xCA, 0x29, 0x85, 0xC1, - 0xA5, 0x7F, 0xFE, 0x56, 0xE9, 0x9E, 0x21, 0x76, - 0x3A, 0x88, 0x70, 0xC6, 0xD3, 0x8C, 0x47, 0xC8, - 0x83, 0x48, 0xC3, 0x6A, 0x9C, 0x80, 0x53, 0xBD, - 0xFD, 0x54, 0x09, 0x91, 0x94, 0xAA, 0x7A, 0x59, - 0x71, 0xDD, 0xA8, 0x07, 0xCB, 0x0F, 0xE0, 0x9A, - 0x36, 0x4C, 0x4D, 0x0D, 0xA4, 0x96, 0x6F, 0x14, - 0x22, 0x38, 0xAD, 0x02, 0xF4, 0x0B, 0xEA, 0x93, - 0x20, 0x04, 0xBC, 0xE8, 0x6C, 0xFB, 0x10, 0x6B, - 0x40, 0xB6, 0x24, 0x17, 0x06, 0x31, 0xD9, 0x33, - 0xF5, 0x99, 0x57, 0xCD, 0xAB, 0x67, 0x5C, 0x30, - 0x1E, 0x34, 0xB4, 0x3F, 0x16, 0x42, 0xA2, 0x68, - 0x27, 0xB3, 0x1D, 0xED, 0x5F, 0x52, 0xF7, 0x3C, - 0x65, 0x5D, 0xE5, 0x23, 0x0C, 0x6D, 0x84, 0x6E, - 0xDA, 0x77, 0xF8, 0x15, 0xFA, 0x69, 0xD0, 0xA7, - 0x11, 0xAC, 0xA6, 0xA3, 0x1F, 0x2E, 0xBF, 0x4A, - 0x8F, 0xFC, 0xEE, 0xC9, 0x26, 0x12, 0xC0, 0xB1, - 0x45, 0x0E, 0x3D, 0x7C, 0xCE, 0x13, 0x8E, 0x98, - 0x46, 0x2B, 0xC5, 0x66, 0x28, 0x32, 0xD2, 0x03, - 0xE3, 0xC4, 0x9B, 0x89, 0x5E, 0xF0, 0xCF, 0x3B, - 0x2D, 0x50, 0xB5, 0x00, 0x0A, 0xD6, 0x55, 0xE1, - 0x62, 0x63, 0x64, 0x87, 0xAF, 0x78, 0xB9, 0xF2, - 0x25, 0x44, 0xFF, 0x39, 0xF1, 0x08, 0x4F, 0x74, - 0xA9, 0x8B, 0x75, 0x01, 0xA0, 0xE4, 0x35, 0x8D, - 0xA1, 0xCC, 0xDF, 0x60, 0xD8, 0x5A, 0xE6, 0xD4 }; - -static const unsigned char table_113[256] = { - 0x46, 0x9D, 0x39, 0xB2, 0x8D, 0x3B, 0x59, 0x5A, - 0xD0, 0x9C, 0xE4, 0x04, 0x01, 0xE2, 0xB3, 0xD2, - 0xD7, 0x18, 0x40, 0xD8, 0xF1, 0xEF, 0x3A, 0x1D, - 0x8E, 0xE5, 0xD9, 0xD3, 0xCB, 0x49, 0x4C, 0xCF, - 0xC0, 0xD6, 0xB5, 0x73, 0x77, 0x82, 0x54, 0xA2, - 0xB1, 0xB0, 0x84, 0x5D, 0xC7, 0xDE, 0x31, 0x2F, - 0x50, 0x78, 0xBE, 0x94, 0x64, 0x44, 0x60, 0x7A, - 0x1A, 0x6E, 0x09, 0x6F, 0xBF, 0x76, 0x81, 0x38, - 0x22, 0xC3, 0xEE, 0x8F, 0xFB, 0x32, 0xED, 0x92, - 0xAE, 0xE6, 0x5F, 0xAA, 0xAC, 0x0D, 0xA3, 0x47, - 0x1F, 0x11, 0xC1, 0x29, 0xAF, 0xFD, 0x1C, 0xDB, - 0x00, 0x23, 0xB9, 0xB8, 0x91, 0x41, 0x27, 0x37, - 0x43, 0x02, 0x26, 0xF6, 0x7D, 0x0A, 0x85, 0x93, - 0x97, 0x2E, 0x20, 0x55, 0x13, 0x4B, 0x6C, 0xE7, - 0xFC, 0x25, 0xFA, 0x9E, 0x5B, 0xA1, 0xDF, 0x2C, - 0x3E, 0xBC, 0xEA, 0x42, 0x7C, 0x36, 0x30, 0xEB, - 0xBD, 0x8B, 0x87, 0x16, 0x3D, 0x5C, 0x07, 0xBA, - 0xB4, 0x1B, 0xC2, 0xE3, 0x71, 0x9A, 0x5E, 0x4D, - 0xF2, 0xCC, 0x0E, 0xE1, 0x34, 0x75, 0x58, 0x89, - 0x17, 0xD4, 0x68, 0x80, 0x2B, 0x74, 0x70, 0x8A, - 0x63, 0xE8, 0x56, 0x24, 0xD1, 0x57, 0x35, 0x6D, - 0x3C, 0xA6, 0xC8, 0x7E, 0xA8, 0x4E, 0xC4, 0x33, - 0xA9, 0x62, 0x61, 0x7F, 0x21, 0x98, 0x2A, 0xAD, - 0xB6, 0xA7, 0xF5, 0x3F, 0x15, 0x45, 0xF8, 0xA4, - 0x95, 0x88, 0xDC, 0x96, 0x90, 0x08, 0x9B, 0xF9, - 0x06, 0x14, 0x05, 0xF0, 0xF7, 0xA0, 0xE0, 0x65, - 0xCA, 0xA5, 0x9F, 0x79, 0xCD, 0x4F, 0x72, 0xB7, - 0x4A, 0x0F, 0x66, 0xC5, 0x0C, 0x52, 0xF3, 0x69, - 0x83, 0x03, 0x99, 0x1E, 0x2D, 0xDA, 0x8C, 0x53, - 0x28, 0xDD, 0xE9, 0x0B, 0xC9, 0xF4, 0x48, 0x12, - 0x6A, 0x19, 0xCE, 0xAB, 0x51, 0xD5, 0x6B, 0xBB, - 0xFE, 0x7B, 0x67, 0xFF, 0x10, 0xEC, 0xC6, 0x86 }; - -static const unsigned char table_114[32] = { - 0x11, 0x10, 0x04, 0x1D, 0x08, 0x15, 0x1A, 0x1B, - 0x14, 0x18, 0x0F, 0x17, 0x16, 0x07, 0x1E, 0x0E, - 0x12, 0x0A, 0x13, 0x0B, 0x0C, 0x00, 0x06, 0x02, - 0x1F, 0x19, 0x09, 0x1C, 0x01, 0x0D, 0x03, 0x05 }; - -static const unsigned char table_115[256] = { - 0xB7, 0xBB, 0x63, 0x0D, 0xF0, 0x33, 0x5A, 0x05, - 0xF2, 0x7F, 0x64, 0xDB, 0x51, 0xC9, 0x2C, 0x85, - 0x4F, 0x41, 0xA4, 0x42, 0xCF, 0xA6, 0x52, 0x2F, - 0x26, 0xEF, 0xFB, 0x29, 0x40, 0x16, 0xF7, 0xED, - 0x23, 0x69, 0x8A, 0xDF, 0x77, 0x28, 0x93, 0x14, - 0x82, 0x0C, 0xBE, 0x3D, 0x20, 0xB4, 0x79, 0x94, - 0x54, 0xF8, 0x07, 0xB1, 0xE1, 0x66, 0x73, 0xD3, - 0x19, 0x15, 0xFF, 0x03, 0x6A, 0x9A, 0xDC, 0x1C, - 0xB3, 0x5D, 0x76, 0x68, 0x47, 0x6C, 0xF9, 0xFD, - 0xE9, 0xDD, 0x01, 0x65, 0xBD, 0x80, 0x0E, 0x7A, - 0x8D, 0x99, 0x13, 0x7C, 0xA5, 0xA7, 0x1A, 0xCC, - 0xB8, 0xE6, 0x2B, 0xB2, 0xB6, 0xD0, 0x62, 0x2D, - 0x4D, 0xD2, 0xB9, 0x04, 0x46, 0xAE, 0xAA, 0x44, - 0xDA, 0x92, 0x4B, 0x4E, 0xC4, 0xE2, 0xFE, 0xA2, - 0x75, 0x7B, 0xC3, 0xFA, 0x9F, 0x37, 0x9D, 0x1E, - 0x72, 0xD4, 0x1F, 0x4A, 0x9B, 0xE5, 0x6D, 0xEC, - 0x5C, 0x7D, 0x98, 0xE8, 0xEE, 0x86, 0xD1, 0xC8, - 0xEA, 0x55, 0xBF, 0xAF, 0xDE, 0x32, 0x09, 0x3A, - 0x8F, 0x57, 0x83, 0x43, 0x61, 0xC6, 0x8E, 0x96, - 0x22, 0xA3, 0x97, 0x91, 0x5F, 0x11, 0x3B, 0x5B, - 0x1B, 0x34, 0x49, 0x95, 0xF1, 0x6F, 0x89, 0xA8, - 0xC0, 0x36, 0x0A, 0x3F, 0x60, 0x50, 0xE7, 0x08, - 0xCE, 0x25, 0xC1, 0x71, 0xF6, 0x59, 0x58, 0x56, - 0x4C, 0xAB, 0x27, 0xAC, 0x06, 0xCB, 0x00, 0x30, - 0x84, 0x3E, 0xC2, 0x1D, 0x02, 0xE0, 0xC5, 0xD6, - 0x18, 0x70, 0xA9, 0x88, 0xD9, 0x39, 0x8B, 0x6E, - 0xF4, 0x24, 0xA0, 0x48, 0x45, 0x21, 0x87, 0x78, - 0x38, 0x90, 0xE3, 0xCA, 0xF5, 0xD7, 0x2A, 0x53, - 0x9C, 0xCD, 0x31, 0x35, 0xAD, 0x74, 0xD8, 0x12, - 0xBC, 0x9E, 0x6B, 0x67, 0xB0, 0xBA, 0xE4, 0x10, - 0x5E, 0xFC, 0xC7, 0x0F, 0x2E, 0x81, 0x7E, 0xA1, - 0x8C, 0x17, 0xB5, 0xEB, 0xD5, 0xF3, 0x0B, 0x3C }; - -static const unsigned char table_116[32] = { - 0x00, 0x05, 0x10, 0x1C, 0x0C, 0x1A, 0x04, 0x1B, - 0x0A, 0x0D, 0x14, 0x0B, 0x07, 0x03, 0x12, 0x1E, - 0x06, 0x11, 0x01, 0x08, 0x15, 0x09, 0x1F, 0x0F, - 0x19, 0x18, 0x16, 0x02, 0x13, 0x0E, 0x17, 0x1D }; - -static const unsigned char table_117[256] = { - 0xD0, 0x9A, 0xAB, 0xA8, 0xA7, 0xDF, 0x28, 0xCE, - 0x3E, 0x51, 0xBF, 0x76, 0x03, 0xA0, 0x53, 0x3F, - 0x90, 0x93, 0x87, 0x67, 0x98, 0x3D, 0xEA, 0x8B, - 0x55, 0xCF, 0x10, 0xF3, 0x25, 0xFC, 0x9F, 0x41, - 0x6B, 0x54, 0x6E, 0x0B, 0x83, 0x35, 0x69, 0x7D, - 0xE0, 0x88, 0x4B, 0xE9, 0x1E, 0x96, 0x91, 0x57, - 0xBD, 0x72, 0x21, 0x3C, 0xA6, 0x99, 0x6C, 0xF6, - 0x13, 0xFA, 0x29, 0xED, 0xDB, 0x16, 0x4D, 0x07, - 0x45, 0xA5, 0xE3, 0x0E, 0x31, 0xBC, 0x56, 0x5C, - 0xB2, 0x23, 0xDA, 0x74, 0xFF, 0x02, 0x8F, 0xF4, - 0x2A, 0xC9, 0x89, 0xAA, 0x05, 0xB1, 0xD1, 0x1F, - 0x4F, 0xB0, 0x7A, 0x2C, 0x14, 0xD9, 0xE7, 0x66, - 0x62, 0x1A, 0x4C, 0xC0, 0xC6, 0x63, 0x7F, 0xB4, - 0xF1, 0x43, 0xFE, 0x61, 0xA3, 0xCC, 0xE8, 0x6D, - 0xBA, 0x65, 0x42, 0x2B, 0xCA, 0xD5, 0x52, 0x3A, - 0xCD, 0x1D, 0x24, 0xD7, 0x47, 0xDE, 0x9E, 0x95, - 0x85, 0x48, 0x86, 0xE1, 0xC5, 0xD2, 0x34, 0xAF, - 0x40, 0xFB, 0xE6, 0x4E, 0xC8, 0xF5, 0x7B, 0x5A, - 0xCB, 0xD4, 0x97, 0x6F, 0x0C, 0x79, 0x9C, 0x20, - 0x59, 0x19, 0x68, 0x2E, 0x09, 0x64, 0x73, 0x50, - 0xC2, 0x2F, 0x0D, 0xEF, 0x9D, 0x94, 0x00, 0x81, - 0xE2, 0x46, 0x5F, 0xB8, 0x0A, 0x12, 0x75, 0x1C, - 0x8C, 0xB6, 0x71, 0xAC, 0x04, 0x60, 0xA9, 0x5B, - 0xF8, 0x30, 0x49, 0x44, 0x4A, 0xBE, 0x6A, 0xEB, - 0xD3, 0xD8, 0x36, 0xB3, 0x3B, 0x17, 0x80, 0xA4, - 0xEC, 0x26, 0x82, 0xB5, 0x37, 0x5D, 0x1B, 0x2D, - 0xE5, 0xA2, 0x0F, 0xB7, 0xC4, 0xF2, 0x70, 0x39, - 0xF9, 0xC7, 0xBB, 0x8A, 0x32, 0x78, 0xC3, 0x5E, - 0xD6, 0xE4, 0x22, 0x9B, 0x18, 0x8E, 0xEE, 0x27, - 0x8D, 0x33, 0x11, 0x77, 0x01, 0x06, 0x38, 0xF0, - 0x7E, 0x08, 0x15, 0xB9, 0x7C, 0xAD, 0x84, 0xDD, - 0xC1, 0xFD, 0x92, 0xA1, 0xF7, 0xAE, 0xDC, 0x58 }; - -static const unsigned char table_118[256] = { - 0x38, 0xA0, 0xA6, 0xFC, 0x7C, 0x5A, 0x97, 0x1D, - 0xFD, 0x00, 0x20, 0xA2, 0x72, 0x10, 0x1F, 0x48, - 0x98, 0x7E, 0xDF, 0x2D, 0x80, 0x0A, 0x27, 0xDC, - 0xCF, 0xBF, 0x92, 0x94, 0x53, 0xCC, 0x0E, 0x74, - 0xA7, 0x60, 0x08, 0x15, 0x87, 0x6F, 0xB3, 0xA3, - 0xED, 0x59, 0x09, 0x4F, 0x9E, 0x9A, 0xEE, 0x83, - 0x56, 0x32, 0x34, 0xC7, 0x24, 0xE7, 0x96, 0x4D, - 0xAE, 0xE3, 0xBD, 0xE2, 0x36, 0x4A, 0xB6, 0x8B, - 0xF2, 0xC1, 0xD7, 0x40, 0x31, 0x4B, 0xDA, 0xF1, - 0xB1, 0x70, 0xA8, 0xC3, 0xC6, 0x8A, 0xE6, 0x77, - 0x21, 0x7D, 0xD5, 0x0C, 0x43, 0xC4, 0xF0, 0x1B, - 0x18, 0xA1, 0x85, 0xE1, 0xFF, 0x8D, 0xE5, 0x6E, - 0x9B, 0x51, 0x1C, 0xA4, 0x5C, 0x8E, 0x69, 0x49, - 0x23, 0xCD, 0x52, 0xF8, 0x3E, 0x91, 0x5E, 0x1E, - 0x25, 0xB4, 0x93, 0xCB, 0xE0, 0x47, 0xBC, 0x4E, - 0x33, 0xB7, 0x75, 0x1A, 0x11, 0x9C, 0x3F, 0xEC, - 0xD1, 0x46, 0xDD, 0xAA, 0xB8, 0x99, 0x86, 0x67, - 0x58, 0xF9, 0x16, 0x17, 0x6D, 0x5F, 0x2B, 0xA5, - 0xD3, 0x8F, 0x55, 0x71, 0xD2, 0xBA, 0x5B, 0x3C, - 0x82, 0xB5, 0x41, 0xE4, 0x90, 0x45, 0x6C, 0xF6, - 0xDE, 0xA9, 0x84, 0x62, 0x19, 0x3B, 0xB9, 0xC8, - 0x2C, 0xB0, 0x76, 0x57, 0xD8, 0x26, 0x9D, 0x89, - 0xC9, 0x54, 0xFB, 0x07, 0xCE, 0x22, 0x5D, 0x64, - 0x65, 0xAD, 0x01, 0xDB, 0x14, 0x4C, 0x37, 0x03, - 0x6B, 0xAF, 0xD0, 0x7F, 0x9F, 0xBB, 0xEB, 0xC0, - 0x50, 0x66, 0x68, 0x0B, 0x42, 0x2A, 0xD4, 0xF5, - 0x61, 0x63, 0xF3, 0x39, 0xBE, 0xC5, 0xEF, 0x28, - 0x3A, 0xAB, 0x79, 0x05, 0xE9, 0x12, 0x73, 0x3D, - 0xB2, 0x8C, 0xCA, 0x29, 0x0F, 0xF4, 0x7B, 0x13, - 0x88, 0x44, 0xC2, 0x2E, 0xFA, 0xFE, 0x04, 0x35, - 0xE8, 0x06, 0x7A, 0x78, 0x0D, 0x81, 0xF7, 0xEA, - 0xD9, 0x2F, 0x02, 0xAC, 0x30, 0x6A, 0xD6, 0x95 }; - -static const unsigned char table_119[32] = { - 0x14, 0x0A, 0x1C, 0x00, 0x0C, 0x1F, 0x1E, 0x0B, - 0x12, 0x1D, 0x17, 0x08, 0x07, 0x04, 0x09, 0x10, - 0x03, 0x1B, 0x0E, 0x1A, 0x05, 0x0D, 0x11, 0x15, - 0x18, 0x02, 0x06, 0x01, 0x19, 0x16, 0x13, 0x0F }; - -static const unsigned char table_120[256] = { - 0xCE, 0x89, 0xB2, 0x72, 0x04, 0x77, 0x64, 0xAE, - 0x80, 0x99, 0xB5, 0x00, 0x7B, 0x50, 0x9D, 0xE3, - 0x87, 0x37, 0x6D, 0x3D, 0x32, 0xBA, 0x20, 0xF0, - 0xDC, 0xBD, 0x61, 0x26, 0xD4, 0xA6, 0x70, 0x54, - 0xC1, 0x7D, 0x82, 0xFF, 0x81, 0x83, 0x2F, 0xF5, - 0x3B, 0x42, 0x08, 0x5C, 0x30, 0x59, 0xBB, 0xC2, - 0x33, 0x5D, 0xEE, 0xB7, 0xF7, 0x2B, 0x76, 0xD0, - 0x43, 0x1C, 0x48, 0xFC, 0x01, 0xCD, 0x27, 0x1D, - 0x5A, 0x96, 0x95, 0x03, 0xC6, 0x1F, 0x09, 0xCB, - 0xF6, 0x47, 0xA9, 0x93, 0xA7, 0xD2, 0xDB, 0x51, - 0xB0, 0x7A, 0xE6, 0x62, 0x0F, 0x12, 0x57, 0xF4, - 0x35, 0xFE, 0xA4, 0xDF, 0x5B, 0xF3, 0x67, 0x85, - 0x98, 0xE4, 0xAB, 0x75, 0x4C, 0xE2, 0x25, 0x74, - 0x3A, 0x45, 0xDE, 0xEF, 0x4A, 0x97, 0x86, 0x24, - 0xE9, 0x8F, 0xD8, 0xD7, 0x60, 0xAD, 0x36, 0x8E, - 0x1E, 0xB9, 0x4F, 0x6B, 0x8C, 0x06, 0x23, 0x94, - 0x0E, 0xD3, 0x49, 0x14, 0x90, 0xAF, 0x65, 0xEC, - 0xF9, 0x0D, 0xED, 0x6C, 0xBE, 0x7F, 0xA5, 0xC5, - 0xEA, 0x78, 0x2E, 0xBC, 0xD5, 0xDA, 0x18, 0xE1, - 0x10, 0x2D, 0xB4, 0x16, 0x4B, 0xE8, 0xC4, 0x8D, - 0x19, 0x1B, 0x02, 0x66, 0xB6, 0xE7, 0x9C, 0x7C, - 0xC9, 0xA0, 0x2A, 0x53, 0x13, 0xDD, 0xF8, 0xA8, - 0x0A, 0x6E, 0xCF, 0x6F, 0x7E, 0xE0, 0x3E, 0xE5, - 0x07, 0xCC, 0x38, 0xD1, 0xF2, 0x2C, 0x9A, 0xAC, - 0x88, 0x79, 0xB8, 0xC8, 0xBF, 0x63, 0x71, 0x69, - 0x52, 0x39, 0x9F, 0x22, 0x3F, 0x9E, 0x44, 0xFA, - 0x73, 0x6A, 0x8B, 0xA2, 0xD6, 0x1A, 0x9B, 0xB1, - 0x8A, 0x4D, 0x58, 0xA1, 0x46, 0x5F, 0x55, 0x56, - 0x21, 0x05, 0x15, 0x92, 0xAA, 0xEB, 0x31, 0x68, - 0xFB, 0x41, 0xC3, 0x4E, 0xB3, 0x40, 0x34, 0x17, - 0xD9, 0x29, 0x3C, 0x0C, 0xF1, 0x0B, 0x28, 0x84, - 0x5E, 0xCA, 0xFD, 0x11, 0xA3, 0xC7, 0xC0, 0x91 }; - -static const unsigned char table_121[32] = { - 0x1E, 0x12, 0x06, 0x1D, 0x15, 0x1F, 0x13, 0x0B, - 0x10, 0x0D, 0x1C, 0x01, 0x0A, 0x0E, 0x02, 0x19, - 0x04, 0x1A, 0x03, 0x11, 0x00, 0x16, 0x0C, 0x17, - 0x14, 0x08, 0x18, 0x05, 0x09, 0x0F, 0x1B, 0x07 }; - -static const unsigned char table_122[256] = { - 0x85, 0xDF, 0x7F, 0x7C, 0x56, 0xF0, 0x0C, 0x7D, - 0x76, 0xA8, 0x58, 0x31, 0x25, 0x8A, 0x0D, 0x23, - 0x05, 0x0F, 0x12, 0x64, 0x8E, 0x5D, 0xF4, 0x2C, - 0x18, 0xFA, 0x4B, 0xFE, 0x91, 0xBF, 0x95, 0x0B, - 0xF1, 0x88, 0x10, 0xD8, 0x3E, 0x53, 0x96, 0xB5, - 0x75, 0x24, 0x8F, 0xD6, 0x68, 0x5C, 0x93, 0x1F, - 0x6B, 0xC2, 0xAB, 0xED, 0x1E, 0xC0, 0xBC, 0x47, - 0xE9, 0xD1, 0xDE, 0xCA, 0xF6, 0x62, 0x43, 0xEB, - 0xA2, 0xB4, 0x08, 0xE6, 0x74, 0x0E, 0xA1, 0x72, - 0x66, 0x61, 0x21, 0x2E, 0x32, 0x63, 0x29, 0xD7, - 0x1C, 0x22, 0xAC, 0xE7, 0x54, 0xF3, 0x65, 0x17, - 0x9F, 0x78, 0x79, 0x4C, 0xDD, 0x27, 0x90, 0x36, - 0x19, 0x44, 0x03, 0xD9, 0x4A, 0x5A, 0x34, 0xF9, - 0x97, 0xA6, 0x70, 0x39, 0x28, 0x77, 0x6E, 0xB7, - 0x8C, 0x02, 0x5E, 0x9B, 0x8D, 0x59, 0x6F, 0xA5, - 0x07, 0xE2, 0x41, 0x51, 0xC9, 0x3C, 0xE8, 0xE1, - 0xB3, 0x16, 0x50, 0x04, 0xE3, 0x1D, 0x3B, 0xD2, - 0x4D, 0x35, 0x71, 0xDA, 0x9E, 0xA7, 0xE4, 0xE0, - 0xB6, 0x2B, 0xEA, 0x84, 0x55, 0xF8, 0x57, 0x3D, - 0x73, 0x42, 0xC6, 0x0A, 0x92, 0x6A, 0xAE, 0xF5, - 0xFC, 0xD5, 0x15, 0x52, 0x7E, 0x14, 0x81, 0x13, - 0xE5, 0x49, 0x38, 0x2A, 0x94, 0x5B, 0xA3, 0x11, - 0x8B, 0x80, 0xBB, 0x01, 0x9C, 0xA4, 0xDB, 0xF7, - 0xA9, 0x20, 0xF2, 0x1A, 0xDC, 0x33, 0x3A, 0xEF, - 0xD3, 0xFD, 0x30, 0xB0, 0x1B, 0xC4, 0x06, 0xD4, - 0x6D, 0x87, 0x2F, 0x60, 0x5F, 0xC5, 0x09, 0x37, - 0xAF, 0x00, 0xCB, 0x9D, 0xA0, 0xB9, 0x45, 0x86, - 0x4F, 0x6C, 0x67, 0xFB, 0x40, 0x3F, 0xCC, 0xB8, - 0xC8, 0x82, 0x98, 0x99, 0x7B, 0xB1, 0xCD, 0xD0, - 0xBD, 0x48, 0xAD, 0x26, 0x7A, 0x9A, 0x46, 0xFF, - 0x89, 0xC7, 0xC1, 0xCF, 0xBE, 0xAA, 0xEC, 0xBA, - 0xCE, 0x2D, 0x4E, 0x83, 0xC3, 0x69, 0xEE, 0xB2 }; - -static const unsigned char table_123[256] = { - 0x9D, 0xFB, 0x3C, 0x81, 0xAA, 0x05, 0xB2, 0xBE, - 0xD1, 0x5F, 0x4C, 0xE0, 0xA3, 0xF4, 0xDE, 0x35, - 0xFE, 0x1B, 0x37, 0x99, 0x94, 0x7A, 0x10, 0xAB, - 0xC0, 0xA4, 0xB5, 0xFF, 0x8F, 0x3B, 0xB4, 0x51, - 0x04, 0xE9, 0xB9, 0xC1, 0x98, 0xC5, 0x82, 0x38, - 0x4D, 0x71, 0xFC, 0x33, 0xC4, 0x50, 0x5D, 0x88, - 0xB8, 0x5C, 0x32, 0xE2, 0xBB, 0xCD, 0x60, 0x2C, - 0xD4, 0x7E, 0x27, 0x59, 0x2B, 0x1F, 0x53, 0xF6, - 0x25, 0x86, 0xAE, 0x21, 0xFA, 0x31, 0xD7, 0x0F, - 0x17, 0xDA, 0x7F, 0xC9, 0x46, 0x19, 0x08, 0xA8, - 0xCF, 0x13, 0xCC, 0x03, 0x3F, 0x22, 0x6E, 0xEB, - 0x4A, 0x63, 0x73, 0xBD, 0x36, 0xED, 0x30, 0x57, - 0x65, 0xF8, 0x41, 0x61, 0x1E, 0xA0, 0xC6, 0x45, - 0x3E, 0x75, 0x28, 0x87, 0xCB, 0xD6, 0x16, 0xD8, - 0xDF, 0xEF, 0xEA, 0xA7, 0x58, 0xB0, 0x1D, 0xE6, - 0x47, 0x76, 0xD9, 0x96, 0xE7, 0xDC, 0x00, 0x80, - 0xDD, 0xB7, 0x9A, 0xE1, 0xF5, 0x9C, 0x4B, 0xE3, - 0xBC, 0x8D, 0xF2, 0x2F, 0x9F, 0x6C, 0x93, 0xAF, - 0xA9, 0xC2, 0x5E, 0x24, 0x15, 0xD2, 0x09, 0x0D, - 0xDB, 0x4F, 0x91, 0x0E, 0x64, 0x34, 0x4E, 0xAD, - 0x62, 0x44, 0x23, 0x85, 0xB6, 0xAC, 0xC7, 0xCA, - 0x84, 0xF9, 0x8C, 0xBF, 0x14, 0x7C, 0x8E, 0x92, - 0xF0, 0x0B, 0xCE, 0x90, 0x7D, 0x70, 0x9E, 0x54, - 0x39, 0x5B, 0x6D, 0x52, 0xEE, 0xA2, 0x6F, 0x78, - 0x2D, 0x95, 0x8B, 0x02, 0x3D, 0x7B, 0x69, 0xC3, - 0x49, 0xA5, 0x1A, 0x26, 0xD5, 0x6B, 0xE8, 0xFD, - 0xB3, 0xD3, 0x20, 0x55, 0x18, 0x06, 0xF3, 0xB1, - 0x0C, 0xC8, 0x07, 0x12, 0xF7, 0x01, 0x2E, 0x72, - 0x97, 0xA6, 0x11, 0x89, 0x56, 0x5A, 0x29, 0xBA, - 0x67, 0x42, 0x83, 0x6A, 0x2A, 0xF1, 0xA1, 0x9B, - 0xE5, 0xE4, 0x74, 0x66, 0x1C, 0x68, 0xEC, 0x40, - 0x48, 0x77, 0xD0, 0x0A, 0x8A, 0x3A, 0x43, 0x79 }; - -static const unsigned char table_124[256] = { - 0x6C, 0xC3, 0x28, 0x2F, 0x42, 0x4B, 0x7C, 0x3C, - 0xCE, 0x24, 0xC8, 0x51, 0x25, 0x3F, 0x49, 0x8D, - 0x1E, 0x5C, 0x89, 0x3A, 0x98, 0x47, 0x0B, 0x12, - 0xA9, 0xB1, 0xD7, 0xB6, 0x5D, 0xF9, 0x5A, 0xBC, - 0xFA, 0x06, 0x7D, 0x08, 0xFC, 0x37, 0x54, 0x4F, - 0xD4, 0xCD, 0xA7, 0x5E, 0xE0, 0x92, 0x82, 0x56, - 0xF1, 0x2B, 0xC4, 0xE2, 0x29, 0xEA, 0x35, 0x57, - 0x33, 0x4E, 0x1A, 0x17, 0x8B, 0x85, 0xBF, 0xD5, - 0x18, 0xB3, 0x0D, 0x71, 0x45, 0x81, 0xB4, 0x27, - 0xD1, 0xE1, 0xFF, 0x44, 0x9E, 0xA4, 0x15, 0x9A, - 0x90, 0xC7, 0x79, 0xE3, 0x4C, 0xE9, 0x3D, 0x6B, - 0xF5, 0xF4, 0xEE, 0xAA, 0xDB, 0x07, 0x09, 0xCF, - 0x7B, 0x95, 0xA0, 0x53, 0x8F, 0xA1, 0x9D, 0xBE, - 0x6F, 0xAE, 0x96, 0x46, 0x59, 0x01, 0x84, 0xCC, - 0x3B, 0x8E, 0xF7, 0x4D, 0x6E, 0xDC, 0xE8, 0x36, - 0x7A, 0xE5, 0xBD, 0xE7, 0x9F, 0x2C, 0x52, 0xAB, - 0x55, 0x13, 0x1D, 0xFB, 0x58, 0x9C, 0xDF, 0xC0, - 0x30, 0x73, 0x67, 0x39, 0x74, 0xD3, 0x11, 0xD2, - 0x0E, 0x20, 0xB7, 0x02, 0xB9, 0x1C, 0x86, 0x76, - 0x10, 0x68, 0x9B, 0x63, 0x48, 0x8A, 0xB2, 0xB8, - 0xAF, 0x26, 0x99, 0x04, 0xB0, 0xE4, 0xEF, 0xEB, - 0xEC, 0x6D, 0x61, 0xC1, 0xD0, 0x38, 0xC9, 0x19, - 0x60, 0xA8, 0xA6, 0xF8, 0x80, 0xC5, 0x03, 0x0F, - 0x22, 0x2D, 0x88, 0x32, 0x77, 0x70, 0xFE, 0x0C, - 0x31, 0x40, 0x5F, 0xED, 0xA5, 0x93, 0x43, 0xF0, - 0x8C, 0xE6, 0x34, 0x21, 0xD9, 0xC2, 0xD8, 0xC6, - 0x6A, 0xD6, 0xCB, 0xAC, 0x75, 0xB5, 0x78, 0x0A, - 0xA3, 0x69, 0x16, 0xBA, 0x50, 0x2A, 0x41, 0x83, - 0xF6, 0x64, 0x00, 0x65, 0x7E, 0xDD, 0x5B, 0xDA, - 0x14, 0xFD, 0x3E, 0x7F, 0xCA, 0x66, 0x4A, 0x1F, - 0xA2, 0xAD, 0xF2, 0x23, 0xBB, 0x72, 0xF3, 0x94, - 0x62, 0x1B, 0xDE, 0x91, 0x87, 0x97, 0x05, 0x2E }; - -static const unsigned char table_125[32] = { - 0x1A, 0x18, 0x12, 0x15, 0x00, 0x1C, 0x01, 0x0B, - 0x19, 0x1B, 0x1F, 0x11, 0x07, 0x10, 0x1E, 0x06, - 0x17, 0x04, 0x0A, 0x0E, 0x0D, 0x0C, 0x16, 0x08, - 0x02, 0x03, 0x13, 0x14, 0x09, 0x1D, 0x05, 0x0F }; - -static const unsigned char table_126[32] = { - 0x1C, 0x1D, 0x07, 0x12, 0x18, 0x1A, 0x19, 0x09, - 0x0F, 0x14, 0x1F, 0x0B, 0x13, 0x04, 0x0E, 0x1E, - 0x0C, 0x0D, 0x01, 0x17, 0x1B, 0x16, 0x0A, 0x05, - 0x15, 0x10, 0x11, 0x08, 0x00, 0x03, 0x06, 0x02 }; - -static const unsigned char table_127[256] = { - 0xA0, 0x66, 0xD8, 0x08, 0xEA, 0x39, 0x78, 0xAB, - 0x61, 0x4E, 0xC7, 0xD1, 0xA3, 0x1C, 0x9F, 0xCB, - 0x19, 0x51, 0x15, 0x92, 0x23, 0xFD, 0x7D, 0x1D, - 0x95, 0xAE, 0x0E, 0x8B, 0xE6, 0x7F, 0x86, 0x6D, - 0x06, 0xBD, 0x20, 0x1F, 0x3A, 0xE4, 0x54, 0x91, - 0x69, 0xD3, 0xE3, 0x3D, 0x4D, 0x31, 0x49, 0xA4, - 0x41, 0xF3, 0xE0, 0x11, 0x14, 0x9B, 0x96, 0x5A, - 0xC4, 0x8E, 0x34, 0xDB, 0xBA, 0x83, 0xD9, 0x81, - 0xAF, 0x58, 0x8A, 0x79, 0x13, 0xBC, 0x85, 0x37, - 0x9E, 0x6C, 0x57, 0x71, 0x8D, 0x97, 0x5F, 0x6F, - 0x1E, 0x74, 0x27, 0xFC, 0x5C, 0x7A, 0x64, 0x87, - 0xF5, 0xC6, 0xF2, 0x4F, 0xDE, 0x80, 0xAA, 0x84, - 0x2E, 0xDC, 0xE7, 0x40, 0x75, 0xC5, 0xB3, 0xC8, - 0xCE, 0x21, 0x02, 0x67, 0xB7, 0x10, 0x47, 0x6A, - 0xEE, 0x53, 0x2C, 0x16, 0x05, 0xC0, 0x63, 0x4C, - 0x0D, 0xBB, 0xC3, 0x38, 0x46, 0x68, 0x7E, 0xF9, - 0xB8, 0xB4, 0x3E, 0x36, 0xD5, 0xEC, 0x0B, 0xF6, - 0x33, 0x0A, 0x0F, 0x5B, 0xFB, 0x45, 0xEB, 0xA9, - 0x6E, 0x6B, 0xCF, 0x55, 0x99, 0xAC, 0x22, 0xBE, - 0xB1, 0xA2, 0x3F, 0x25, 0x77, 0x8F, 0x7C, 0xF1, - 0xD4, 0x59, 0xA8, 0xE5, 0xD7, 0xCA, 0xA1, 0x93, - 0xE9, 0xAD, 0xF7, 0x94, 0xEF, 0xED, 0x3C, 0x2A, - 0x88, 0xB5, 0x35, 0x9D, 0x9C, 0x32, 0x5E, 0xB6, - 0x48, 0x9A, 0x7B, 0x26, 0x50, 0x90, 0x04, 0xA7, - 0xDD, 0x09, 0xB9, 0x98, 0xB2, 0xFE, 0xDF, 0x44, - 0x89, 0x29, 0x5D, 0xE2, 0x72, 0xC9, 0x28, 0x03, - 0x43, 0x8C, 0x52, 0x18, 0xC1, 0x56, 0x1B, 0x1A, - 0x01, 0x65, 0xDA, 0xBF, 0x07, 0xFF, 0x76, 0xE8, - 0x30, 0xA5, 0x4A, 0xA6, 0x12, 0x62, 0x24, 0x60, - 0x4B, 0x73, 0x0C, 0xF0, 0xFA, 0x42, 0xF4, 0x00, - 0xD2, 0xD0, 0xD6, 0x3B, 0xC2, 0x2F, 0xE1, 0x2B, - 0x70, 0xF8, 0x17, 0xCD, 0xB0, 0xCC, 0x82, 0x2D }; - -static const unsigned char table_128[32] = { - 0x1A, 0x1C, 0x09, 0x17, 0x1B, 0x0B, 0x16, 0x1E, - 0x14, 0x0C, 0x12, 0x0E, 0x05, 0x03, 0x1F, 0x15, - 0x19, 0x0D, 0x10, 0x13, 0x0A, 0x01, 0x00, 0x11, - 0x02, 0x08, 0x0F, 0x18, 0x07, 0x04, 0x1D, 0x06 }; - -static const unsigned char table_129[256] = { - 0x9D, 0x5F, 0xE8, 0x99, 0x57, 0x07, 0x16, 0xA6, - 0x9F, 0xB6, 0xDE, 0xED, 0x2D, 0xB3, 0xC0, 0x8E, - 0xCC, 0x49, 0xCE, 0xB0, 0x1B, 0xB1, 0x7A, 0xE0, - 0xEB, 0x28, 0xDB, 0x7D, 0x88, 0xC8, 0x06, 0x6C, - 0x02, 0xD0, 0x85, 0x7E, 0xDF, 0xF5, 0x78, 0xE5, - 0xA9, 0x71, 0xD9, 0xDD, 0xDC, 0xEE, 0x8C, 0x54, - 0xA0, 0x86, 0xFE, 0x0E, 0x55, 0xF7, 0x41, 0x47, - 0x1D, 0x15, 0xD6, 0xA4, 0xFF, 0x1F, 0x25, 0xF8, - 0x12, 0xE9, 0x74, 0x7B, 0x04, 0xE6, 0x4C, 0x31, - 0xA2, 0xBE, 0x0C, 0xB9, 0x17, 0xBD, 0x3D, 0xF0, - 0x9E, 0x4D, 0x4E, 0xB2, 0xE7, 0x40, 0xC9, 0x8A, - 0x67, 0x5E, 0x19, 0x0F, 0xB7, 0x22, 0x8D, 0xBA, - 0xFC, 0x93, 0x14, 0xEA, 0xFD, 0x0D, 0xD5, 0x38, - 0xA1, 0x84, 0x1C, 0x35, 0x60, 0x37, 0x43, 0x9C, - 0xCF, 0xEF, 0x3A, 0x72, 0xF2, 0x61, 0x75, 0x6A, - 0x42, 0xAC, 0xD3, 0x48, 0x77, 0xC5, 0x29, 0xF6, - 0x58, 0x79, 0xFA, 0x5D, 0xC7, 0x70, 0x53, 0x9A, - 0x6F, 0xC1, 0x0A, 0x90, 0x8F, 0x3E, 0x3B, 0x8B, - 0xEC, 0xBC, 0x20, 0x27, 0xC3, 0x66, 0x3F, 0x33, - 0xA5, 0x44, 0x2E, 0x32, 0x65, 0x18, 0xFB, 0x59, - 0x52, 0x50, 0xE2, 0x63, 0x2B, 0xCD, 0x64, 0xCB, - 0xD2, 0x68, 0x10, 0xA7, 0xAE, 0x11, 0xA8, 0x96, - 0x69, 0xAF, 0xC2, 0x34, 0x5C, 0x56, 0xE3, 0xF9, - 0xDA, 0x51, 0x81, 0x4A, 0x05, 0x00, 0xB8, 0x7C, - 0x30, 0x2F, 0x46, 0xB4, 0xC6, 0x87, 0x4B, 0x94, - 0x80, 0xF4, 0x7F, 0x3C, 0x26, 0xF1, 0x5B, 0xAB, - 0x91, 0x6E, 0x08, 0x76, 0x98, 0xD1, 0xE1, 0x36, - 0x21, 0xCA, 0xD8, 0x24, 0x9B, 0x39, 0xBB, 0xAD, - 0x13, 0x62, 0x97, 0x1A, 0x6D, 0x2C, 0x5A, 0xC4, - 0xD4, 0xA3, 0x03, 0xBF, 0x1E, 0xE4, 0xF3, 0x95, - 0x23, 0x73, 0x92, 0xB5, 0x01, 0x83, 0x82, 0xAA, - 0x09, 0x45, 0x6B, 0xD7, 0x0B, 0x89, 0x4F, 0x2A }; - -static const unsigned char table_130[32] = { - 0x07, 0x03, 0x15, 0x0B, 0x02, 0x11, 0x17, 0x14, - 0x05, 0x10, 0x0A, 0x0F, 0x01, 0x1C, 0x1D, 0x0E, - 0x12, 0x06, 0x18, 0x16, 0x1A, 0x09, 0x13, 0x19, - 0x1B, 0x00, 0x08, 0x0D, 0x0C, 0x1E, 0x04, 0x1F }; - -static const unsigned char table_131[32] = { - 0x1D, 0x13, 0x1B, 0x10, 0x07, 0x03, 0x0A, 0x02, - 0x00, 0x0C, 0x0E, 0x0B, 0x0D, 0x18, 0x12, 0x1F, - 0x1A, 0x04, 0x15, 0x11, 0x1E, 0x08, 0x1C, 0x14, - 0x19, 0x05, 0x0F, 0x17, 0x06, 0x01, 0x09, 0x16 }; - -static const unsigned char table_132[256] = { - 0x33, 0x8D, 0x45, 0x6F, 0xFF, 0xF5, 0xB6, 0x53, - 0x3B, 0xF3, 0x07, 0xA4, 0x97, 0xEB, 0x6B, 0xA5, - 0xD3, 0xDC, 0x7B, 0x79, 0x93, 0xE7, 0xF7, 0x67, - 0x9C, 0x4F, 0x88, 0xF9, 0x3A, 0x2B, 0x27, 0x48, - 0x47, 0x18, 0xF4, 0xAD, 0xB4, 0x8F, 0x2A, 0x76, - 0x17, 0xE9, 0x1F, 0x40, 0x0C, 0x59, 0xD1, 0x4C, - 0x20, 0x31, 0x73, 0x54, 0xCD, 0x68, 0x08, 0x52, - 0x10, 0x62, 0x3D, 0xD2, 0x77, 0xF2, 0xD7, 0x30, - 0xCA, 0x16, 0x01, 0x50, 0x9F, 0x3F, 0x75, 0xED, - 0x90, 0x6A, 0x34, 0xCE, 0x05, 0x78, 0x5E, 0xD6, - 0x85, 0xCC, 0x29, 0xB8, 0xC1, 0x0D, 0xCB, 0x80, - 0x2E, 0x04, 0x00, 0x44, 0x32, 0x95, 0xBF, 0xFE, - 0x6E, 0x7C, 0xFD, 0xA7, 0x3C, 0x5C, 0xF0, 0xEC, - 0xAC, 0xF8, 0xB9, 0xC0, 0x1B, 0x3E, 0xE8, 0x66, - 0x5D, 0xDE, 0x49, 0x71, 0xAA, 0xAF, 0x21, 0x64, - 0x28, 0x8A, 0x4E, 0x98, 0x58, 0xA2, 0x23, 0xCF, - 0x9E, 0x63, 0x61, 0x91, 0x12, 0xC6, 0x8C, 0x19, - 0xA8, 0xD4, 0xC7, 0xDD, 0xFC, 0xBD, 0x38, 0xDF, - 0xEA, 0x2D, 0x7E, 0x7D, 0xE3, 0xE0, 0xC3, 0xD9, - 0x8B, 0x11, 0xF1, 0x4D, 0xC8, 0xB5, 0x55, 0xAE, - 0xE1, 0x89, 0xE5, 0xB3, 0xBC, 0x69, 0x9D, 0xA6, - 0x09, 0x9A, 0x74, 0x35, 0x1A, 0xFB, 0x24, 0xB7, - 0x13, 0x14, 0x94, 0x0A, 0x86, 0x0F, 0x60, 0x51, - 0xB0, 0x84, 0x22, 0x5B, 0x87, 0x43, 0x57, 0x0B, - 0x2F, 0x5F, 0x02, 0xD0, 0xBB, 0xA3, 0xC9, 0x7A, - 0xBE, 0xC2, 0x26, 0x46, 0xDB, 0x1E, 0x1D, 0x92, - 0xE2, 0xB2, 0x37, 0x6D, 0xD5, 0x4A, 0x0E, 0x4B, - 0x8E, 0xC5, 0x42, 0x99, 0xEE, 0xE4, 0xB1, 0x06, - 0xAB, 0x5A, 0x56, 0x41, 0x65, 0xBA, 0xFA, 0x83, - 0x15, 0xDA, 0x72, 0xA1, 0x81, 0x1C, 0xA9, 0x36, - 0x25, 0x96, 0x6C, 0x39, 0x82, 0xE6, 0x2C, 0x9B, - 0xC4, 0x7F, 0xA0, 0xD8, 0xEF, 0x03, 0x70, 0xF6 }; - -static const unsigned char table_133[256] = { - 0x02, 0xF0, 0xED, 0xC4, 0xE4, 0x67, 0x60, 0x8B, - 0xF3, 0x77, 0x92, 0xE0, 0x85, 0x93, 0x1E, 0x8E, - 0x9A, 0x38, 0x61, 0x20, 0xB7, 0x68, 0xE1, 0x5E, - 0xD5, 0x63, 0xA9, 0xA5, 0xBE, 0x36, 0x12, 0x4D, - 0x86, 0x16, 0xD6, 0xB1, 0x23, 0x64, 0x4F, 0x62, - 0xFC, 0xA3, 0xD3, 0x04, 0x7D, 0x8C, 0xE2, 0xFF, - 0x5D, 0x30, 0xF5, 0x95, 0x1B, 0x5F, 0x73, 0xAA, - 0xE8, 0x07, 0x87, 0xDC, 0x54, 0x7C, 0xEE, 0x00, - 0xB8, 0xDE, 0x55, 0xBA, 0xD0, 0x50, 0xBB, 0x89, - 0x1C, 0xCC, 0x0E, 0xC0, 0x42, 0x11, 0xD8, 0xA2, - 0x2E, 0x33, 0xFE, 0x26, 0xD4, 0x10, 0xDA, 0xC5, - 0xFB, 0xAF, 0x98, 0x78, 0xB5, 0xBD, 0xC8, 0x8D, - 0x46, 0xA0, 0xD1, 0x7B, 0xBC, 0x75, 0xAB, 0x25, - 0xB2, 0x43, 0x57, 0xB6, 0xEC, 0xF4, 0x66, 0x05, - 0x9C, 0x08, 0x53, 0x80, 0xEA, 0x21, 0x2C, 0x6C, - 0x17, 0x71, 0xD2, 0x70, 0x76, 0x9E, 0x6B, 0x7A, - 0x58, 0xA7, 0xBF, 0x29, 0x03, 0x1F, 0x06, 0xC1, - 0xDD, 0x2F, 0x5C, 0x0B, 0x0D, 0x8A, 0x0A, 0xCB, - 0xCA, 0x6F, 0x19, 0x6A, 0xFA, 0xF7, 0xA8, 0xA1, - 0xEB, 0x88, 0x44, 0xAC, 0x01, 0x4E, 0x59, 0x94, - 0x72, 0x2B, 0xE9, 0x0F, 0x22, 0x9B, 0x27, 0x37, - 0x41, 0xF9, 0xF2, 0xE3, 0xEF, 0xB3, 0xD9, 0x2A, - 0x31, 0xC2, 0x0C, 0x15, 0x90, 0x14, 0xF6, 0x83, - 0xFD, 0x96, 0x9D, 0x7F, 0xA4, 0x39, 0xE7, 0x3F, - 0xE6, 0xC7, 0xCD, 0x1A, 0xCF, 0x48, 0x3C, 0x51, - 0x6D, 0x5B, 0x74, 0xC3, 0xC9, 0x09, 0x3D, 0x9F, - 0xDB, 0x32, 0x40, 0x18, 0xD7, 0xCE, 0x69, 0x49, - 0x3A, 0xF1, 0xB9, 0x56, 0x91, 0x99, 0x84, 0x24, - 0x7E, 0x34, 0x4B, 0xA6, 0x47, 0xB4, 0x6E, 0xDF, - 0x65, 0x3B, 0xAD, 0x45, 0x13, 0xC6, 0x81, 0xF8, - 0x4A, 0x2D, 0x8F, 0x4C, 0x97, 0x28, 0x3E, 0xE5, - 0x5A, 0x35, 0xB0, 0xAE, 0x82, 0x79, 0x1D, 0x52 }; - -static const unsigned char table_134[32] = { - 0x09, 0x0F, 0x10, 0x0C, 0x03, 0x15, 0x07, 0x17, - 0x0E, 0x0B, 0x1D, 0x08, 0x19, 0x11, 0x00, 0x0A, - 0x01, 0x06, 0x18, 0x16, 0x0D, 0x13, 0x14, 0x12, - 0x02, 0x1B, 0x1A, 0x04, 0x05, 0x1F, 0x1C, 0x1E }; - -static const unsigned char table_135[256] = { - 0x14, 0x34, 0xEA, 0x02, 0x2B, 0x5A, 0x10, 0x51, - 0xF3, 0x8F, 0x28, 0xB2, 0x50, 0x8B, 0x01, 0xCC, - 0x80, 0x15, 0x29, 0x42, 0xF4, 0x1D, 0xFB, 0xBB, - 0x1F, 0x43, 0x8C, 0x17, 0x1E, 0x81, 0x04, 0x98, - 0x46, 0xD8, 0xD5, 0x65, 0x4C, 0x1C, 0xDB, 0x40, - 0x5F, 0x1A, 0x31, 0x74, 0xF1, 0x64, 0x19, 0x05, - 0xFC, 0xF0, 0x73, 0xB6, 0x23, 0x77, 0x9C, 0xCE, - 0x70, 0xEF, 0xDA, 0xE0, 0xA2, 0x78, 0x84, 0xEB, - 0x9E, 0xC5, 0x95, 0xA3, 0xF6, 0xCA, 0xAD, 0x52, - 0xD0, 0x3F, 0x54, 0xA7, 0x33, 0xA9, 0x09, 0x6A, - 0x89, 0x7E, 0x75, 0xA8, 0xD6, 0x79, 0x9F, 0xAB, - 0x8E, 0x11, 0x0E, 0x3B, 0xAA, 0xE6, 0x85, 0x53, - 0x0A, 0x59, 0xEC, 0x94, 0xD7, 0x41, 0x86, 0x7D, - 0x2F, 0xC7, 0xDE, 0x06, 0xCB, 0x13, 0xBA, 0x58, - 0xC8, 0xC9, 0x07, 0x67, 0x7F, 0xA5, 0xB4, 0x2C, - 0x48, 0x6C, 0xB8, 0xD1, 0x30, 0xD3, 0x35, 0x4F, - 0x88, 0x26, 0x93, 0x32, 0x71, 0x3E, 0x3D, 0xF7, - 0x6D, 0x03, 0xED, 0x8A, 0x36, 0x55, 0x9B, 0x66, - 0x8D, 0x27, 0x7C, 0xF9, 0xA6, 0xC3, 0x20, 0x69, - 0x4A, 0xE3, 0x99, 0x5C, 0xBC, 0x45, 0x16, 0x6B, - 0xB9, 0x49, 0x82, 0xFF, 0xBD, 0xDD, 0xE9, 0x0C, - 0xD4, 0x44, 0xFD, 0x22, 0xE5, 0xAC, 0x61, 0xC4, - 0x90, 0x47, 0x37, 0x72, 0xA4, 0x7A, 0x24, 0x4D, - 0x5B, 0x12, 0x38, 0x92, 0x87, 0x1B, 0xE1, 0xA0, - 0x91, 0x3C, 0xEE, 0x6F, 0xC1, 0x0F, 0x56, 0xC2, - 0x9A, 0xF8, 0x18, 0xE8, 0xD2, 0xDC, 0x4B, 0xCF, - 0x39, 0xF5, 0xFE, 0x2A, 0x2D, 0x9D, 0xA1, 0xFA, - 0xE7, 0xBF, 0x6E, 0xE4, 0x2E, 0xB3, 0xCD, 0xE2, - 0xAF, 0x7B, 0xC0, 0x68, 0x97, 0xB5, 0x5D, 0xB7, - 0x21, 0x57, 0x83, 0x76, 0xB1, 0xAE, 0x5E, 0x0D, - 0x96, 0x4E, 0x08, 0xC6, 0x0B, 0xDF, 0x3A, 0xB0, - 0x00, 0x63, 0xD9, 0xBE, 0xF2, 0x60, 0x25, 0x62 }; - -static const unsigned char table_136[256] = { - 0xD3, 0x1A, 0x00, 0xED, 0x59, 0x24, 0xA3, 0xF2, - 0xBA, 0x58, 0x4C, 0x5C, 0x75, 0x48, 0x98, 0xB0, - 0xCF, 0xC3, 0xF7, 0x88, 0x70, 0xB3, 0x3D, 0x3E, - 0x03, 0xF9, 0xC9, 0xFD, 0x80, 0x44, 0x7F, 0x3B, - 0x95, 0x5F, 0x31, 0x47, 0x15, 0x07, 0xB8, 0x08, - 0xCE, 0xDA, 0x71, 0x9F, 0x83, 0xB1, 0x55, 0x16, - 0xE6, 0xB2, 0xC7, 0xBE, 0x54, 0xE7, 0x2E, 0x8D, - 0x12, 0x21, 0x41, 0x69, 0xFE, 0x28, 0x11, 0x56, - 0x5A, 0xDD, 0xB6, 0x87, 0x78, 0x82, 0x4D, 0x7B, - 0x50, 0x9A, 0x9E, 0x62, 0xF8, 0x0A, 0x64, 0xF1, - 0x4E, 0x33, 0xAD, 0xBB, 0x79, 0x76, 0xD8, 0xCD, - 0x86, 0x34, 0x29, 0xD5, 0x7D, 0x72, 0xC5, 0xC1, - 0xDF, 0x09, 0x4A, 0xB4, 0xD2, 0x7A, 0xF0, 0xCC, - 0x0F, 0xA7, 0xD6, 0x2B, 0x20, 0x26, 0xEF, 0xAB, - 0x74, 0x1E, 0xE3, 0x77, 0xCB, 0x7C, 0x73, 0x5E, - 0x6B, 0x0D, 0x65, 0xA6, 0x30, 0xFB, 0xD0, 0xB7, - 0xAA, 0x94, 0x9D, 0x85, 0x13, 0x18, 0xA8, 0xF3, - 0xE0, 0xBC, 0x45, 0xCA, 0xC8, 0xDC, 0xE2, 0x3C, - 0x23, 0xE5, 0xB9, 0x90, 0x49, 0xA5, 0xE4, 0x36, - 0xFC, 0x53, 0xF6, 0xE8, 0xC6, 0x2C, 0x02, 0x25, - 0xC0, 0x8F, 0x61, 0xA4, 0x39, 0x8C, 0x5D, 0xAE, - 0x22, 0x1C, 0x2F, 0xD4, 0x6C, 0xD1, 0x51, 0xEA, - 0x4F, 0x7E, 0xA0, 0xF5, 0x6A, 0x32, 0xA2, 0x01, - 0xB5, 0x10, 0x2A, 0xAC, 0xA9, 0x06, 0xC4, 0x91, - 0x68, 0xE1, 0xBD, 0x14, 0x38, 0xFA, 0x6E, 0x3F, - 0x37, 0x66, 0xDB, 0x57, 0x43, 0x1B, 0x67, 0xAF, - 0x1F, 0x0B, 0x6D, 0x2D, 0x89, 0x04, 0x4B, 0x52, - 0xC2, 0xBF, 0xA1, 0x92, 0x99, 0x6F, 0x63, 0x81, - 0x27, 0x05, 0x96, 0x3A, 0xEC, 0x0E, 0x97, 0xD9, - 0xDE, 0x46, 0x35, 0x8B, 0x8E, 0x8A, 0xF4, 0xFF, - 0x60, 0xD7, 0xE9, 0x17, 0xEB, 0x9C, 0x84, 0x0C, - 0x93, 0x1D, 0x9B, 0x5B, 0x40, 0xEE, 0x42, 0x19 }; - -static const unsigned char table_137[32] = { - 0x0F, 0x09, 0x02, 0x06, 0x18, 0x0B, 0x1E, 0x05, - 0x11, 0x1D, 0x16, 0x01, 0x13, 0x10, 0x0E, 0x1A, - 0x1B, 0x00, 0x0D, 0x08, 0x15, 0x14, 0x19, 0x17, - 0x03, 0x1F, 0x0A, 0x12, 0x0C, 0x07, 0x04, 0x1C }; - -static const unsigned char table_138[32] = { - 0x0D, 0x1C, 0x1F, 0x15, 0x0F, 0x14, 0x1B, 0x12, - 0x09, 0x0B, 0x19, 0x07, 0x11, 0x16, 0x0C, 0x04, - 0x13, 0x05, 0x1D, 0x03, 0x0E, 0x0A, 0x08, 0x1E, - 0x01, 0x06, 0x18, 0x17, 0x10, 0x1A, 0x02, 0x00 }; - -static const unsigned char table_139[32] = { - 0x05, 0x15, 0x1D, 0x02, 0x0F, 0x03, 0x17, 0x1A, - 0x0A, 0x00, 0x1F, 0x12, 0x0E, 0x11, 0x1B, 0x13, - 0x0B, 0x0D, 0x09, 0x18, 0x1E, 0x08, 0x14, 0x07, - 0x0C, 0x04, 0x16, 0x19, 0x1C, 0x06, 0x10, 0x01 }; - -static const unsigned char table_140[32] = { - 0x06, 0x1E, 0x0C, 0x11, 0x13, 0x08, 0x15, 0x01, - 0x1D, 0x03, 0x0F, 0x19, 0x18, 0x04, 0x00, 0x14, - 0x12, 0x1A, 0x0B, 0x0E, 0x02, 0x1B, 0x07, 0x05, - 0x1F, 0x17, 0x09, 0x0A, 0x0D, 0x16, 0x10, 0x1C }; - -static const unsigned char table_141[256] = { - 0xE1, 0x0A, 0x28, 0xCD, 0x8A, 0x1E, 0x26, 0x10, - 0xC0, 0x6F, 0x06, 0x2C, 0xF8, 0x51, 0x6C, 0x8F, - 0xA8, 0x8C, 0x41, 0xF4, 0xED, 0x36, 0xAC, 0x89, - 0xBD, 0x9D, 0x42, 0x50, 0x95, 0x07, 0x2A, 0x9B, - 0x7E, 0xA3, 0x6B, 0x30, 0x72, 0x4E, 0xBE, 0xD8, - 0x8B, 0x5B, 0x1A, 0x56, 0x05, 0xEF, 0xEE, 0x64, - 0xFF, 0xFD, 0x93, 0xB5, 0xD6, 0x04, 0x57, 0xAE, - 0x4D, 0x6D, 0x2F, 0xBA, 0x40, 0xE0, 0xDB, 0xF2, - 0xCC, 0x08, 0x35, 0x02, 0xC4, 0x65, 0x66, 0x76, - 0xA1, 0x97, 0x9F, 0x6A, 0x90, 0xA7, 0x34, 0x1B, - 0x18, 0xB9, 0xA2, 0xDE, 0x23, 0x1F, 0xCB, 0xE6, - 0xAB, 0xCF, 0xAD, 0x4A, 0xF7, 0x24, 0xD0, 0xE8, - 0x8D, 0x49, 0xEA, 0x0F, 0x94, 0x22, 0xD3, 0x74, - 0x71, 0x0D, 0x21, 0x14, 0x39, 0x4B, 0x16, 0x25, - 0x5A, 0xB7, 0x17, 0x67, 0x59, 0x47, 0x27, 0x4F, - 0x32, 0x3B, 0x63, 0x0C, 0xF0, 0xF3, 0x7B, 0xC7, - 0xCA, 0x3A, 0x9A, 0xE2, 0xD5, 0xFA, 0x91, 0xFC, - 0x86, 0x81, 0x99, 0xB4, 0xBC, 0x7C, 0xC5, 0xBF, - 0xC1, 0xF5, 0x77, 0xA4, 0x79, 0x11, 0x8E, 0x75, - 0x55, 0x3D, 0x78, 0x20, 0x37, 0x3E, 0x85, 0xE4, - 0x2E, 0x82, 0xA9, 0x7A, 0x31, 0xC9, 0xB3, 0xFE, - 0x4C, 0x7D, 0xC3, 0xA0, 0x0E, 0x96, 0x5C, 0xC6, - 0x1C, 0x5F, 0xD7, 0xDD, 0x83, 0xC8, 0x9E, 0xEC, - 0x3F, 0xAF, 0x38, 0x9C, 0xD9, 0xB6, 0xDA, 0xD4, - 0x61, 0x44, 0x43, 0xAA, 0xB1, 0xCE, 0xE7, 0x84, - 0x00, 0x0B, 0xFB, 0x68, 0xC2, 0x3C, 0x58, 0xB2, - 0x69, 0x7F, 0x33, 0x2B, 0x80, 0x03, 0xE9, 0x88, - 0x29, 0x12, 0x01, 0x6E, 0x62, 0xF1, 0xA6, 0xF9, - 0x5D, 0xD2, 0xE3, 0x53, 0x09, 0x2D, 0xBB, 0x15, - 0xEB, 0x13, 0xA5, 0xF6, 0x73, 0x19, 0x60, 0xB0, - 0xD1, 0x48, 0x92, 0x1D, 0x52, 0x5E, 0x45, 0x70, - 0x98, 0x54, 0xB8, 0xDC, 0x46, 0xDF, 0x87, 0xE5 }; - -static const unsigned char table_142[256] = { - 0x90, 0x94, 0xBE, 0x14, 0x99, 0xEB, 0x45, 0x0F, - 0x34, 0x4A, 0xE3, 0x79, 0xD2, 0x64, 0x4D, 0x69, - 0x91, 0xDE, 0xB9, 0x1C, 0x59, 0x20, 0x6C, 0x0B, - 0x16, 0xC7, 0x1D, 0x18, 0x02, 0x7D, 0x13, 0xB2, - 0x7B, 0x81, 0xCF, 0x61, 0xA3, 0x33, 0x00, 0x73, - 0x5A, 0x8A, 0xA1, 0xA8, 0x31, 0xAC, 0xF0, 0x67, - 0xAE, 0xA5, 0x2A, 0x96, 0x58, 0xF4, 0xB7, 0x0E, - 0xE1, 0x54, 0x27, 0x83, 0x09, 0x85, 0xF8, 0x84, - 0xEA, 0xAD, 0x06, 0xED, 0x43, 0xFF, 0xA2, 0x6E, - 0x68, 0x46, 0x74, 0x47, 0x3C, 0xAA, 0xBC, 0x55, - 0xA7, 0xC3, 0x82, 0xDC, 0xBF, 0x38, 0x80, 0x15, - 0xF6, 0xB3, 0x92, 0x7C, 0x93, 0x3F, 0xE9, 0x4C, - 0x35, 0x30, 0x32, 0xF3, 0x88, 0xC0, 0x49, 0x6D, - 0xCE, 0x42, 0xDF, 0xFD, 0x78, 0x6A, 0x24, 0xCA, - 0xB8, 0xFC, 0xA6, 0x5F, 0x29, 0xFE, 0x0C, 0x5C, - 0x0D, 0x23, 0x8B, 0x9D, 0xD4, 0x03, 0x2C, 0x9C, - 0x77, 0xD8, 0x39, 0x8C, 0x57, 0xD5, 0xE0, 0x8F, - 0xC6, 0xB0, 0xCD, 0x48, 0xC9, 0xA0, 0xDA, 0xC8, - 0xD1, 0x5B, 0xAB, 0x37, 0x5D, 0x63, 0xAF, 0xF9, - 0x17, 0x1B, 0xE5, 0xF1, 0x36, 0xC1, 0x04, 0x26, - 0x6F, 0x9E, 0xD9, 0x2F, 0x7F, 0xB5, 0x3A, 0xD6, - 0xE6, 0x40, 0x07, 0xCB, 0x7E, 0x3E, 0xC5, 0x22, - 0xEC, 0xE2, 0xD3, 0x4E, 0x65, 0x2D, 0x70, 0xE7, - 0x10, 0x19, 0xD0, 0xEF, 0xBD, 0xC2, 0x44, 0xB4, - 0xF7, 0xA4, 0x53, 0x9F, 0x86, 0xFA, 0xE8, 0x4B, - 0x28, 0x3D, 0x9B, 0x56, 0x89, 0x6B, 0x25, 0x71, - 0x60, 0x11, 0x9A, 0x5E, 0x1A, 0x52, 0x08, 0x4F, - 0xB1, 0xDD, 0xBB, 0x98, 0xFB, 0x12, 0x3B, 0x0A, - 0x2E, 0xDB, 0x62, 0x8D, 0xC4, 0x75, 0xA9, 0x2B, - 0xE4, 0x97, 0x72, 0xF5, 0xEE, 0xF2, 0xB6, 0x21, - 0xBA, 0x7A, 0x76, 0x41, 0x50, 0x66, 0x05, 0x8E, - 0xCC, 0x1E, 0x87, 0xD7, 0x01, 0x1F, 0x51, 0x95 }; - -static const unsigned char table_143[32] = { - 0x0E, 0x16, 0x18, 0x11, 0x0C, 0x01, 0x12, 0x1F, - 0x08, 0x15, 0x0A, 0x06, 0x1C, 0x1E, 0x02, 0x1A, - 0x17, 0x03, 0x07, 0x13, 0x05, 0x19, 0x10, 0x0F, - 0x0D, 0x14, 0x09, 0x0B, 0x1B, 0x00, 0x1D, 0x04 }; - -static const unsigned char table_144[32] = { - 0x00, 0x1B, 0x17, 0x19, 0x1D, 0x11, 0x0D, 0x1A, - 0x13, 0x03, 0x1E, 0x09, 0x10, 0x0E, 0x15, 0x05, - 0x0B, 0x1C, 0x1F, 0x08, 0x0A, 0x06, 0x01, 0x0F, - 0x16, 0x14, 0x02, 0x04, 0x07, 0x18, 0x12, 0x0C }; - -static const unsigned char table_145[256] = { - 0xF9, 0x2C, 0x38, 0x74, 0xDA, 0x65, 0x85, 0x0E, - 0xBA, 0x64, 0xDB, 0xE3, 0xB6, 0x8B, 0x0B, 0x5E, - 0x01, 0x0F, 0x12, 0x8C, 0xD4, 0xCC, 0xB1, 0x7B, - 0xE7, 0xBC, 0x2E, 0x87, 0x84, 0x3B, 0xF8, 0x4C, - 0x8E, 0x59, 0x2D, 0xAA, 0xCE, 0x28, 0x1B, 0xEE, - 0x7F, 0x5C, 0xFB, 0x62, 0x05, 0xD9, 0xDD, 0x9D, - 0x49, 0x66, 0x82, 0x71, 0xD2, 0xC7, 0xEB, 0xCF, - 0x5B, 0x41, 0x25, 0xC8, 0x6C, 0xFF, 0x78, 0x97, - 0x0C, 0xA2, 0x50, 0x7A, 0xAF, 0x2F, 0xB0, 0x7E, - 0xBB, 0x73, 0xA0, 0x9B, 0x09, 0xDE, 0x35, 0xE9, - 0x5A, 0x70, 0x56, 0xC5, 0x81, 0x19, 0x55, 0xAB, - 0xC1, 0xB4, 0x2A, 0x30, 0x54, 0x6F, 0x3E, 0x46, - 0x5D, 0x37, 0xF5, 0x57, 0x6B, 0x7C, 0x43, 0xE1, - 0x4A, 0x3F, 0xB2, 0x4B, 0x77, 0xB5, 0x44, 0xD6, - 0x91, 0x11, 0x72, 0xE8, 0xBE, 0xA5, 0xA8, 0xD3, - 0x9A, 0x17, 0x86, 0x88, 0x16, 0x3C, 0x36, 0xD8, - 0x6E, 0x07, 0x8D, 0x5F, 0xFA, 0xF1, 0x24, 0x7D, - 0x20, 0x60, 0x0D, 0x89, 0xC9, 0x29, 0xA7, 0x2B, - 0x4E, 0x10, 0x9F, 0xE5, 0x61, 0x32, 0x3A, 0xBF, - 0x93, 0xE6, 0xF3, 0x52, 0x80, 0xC4, 0x02, 0x22, - 0xA4, 0xBD, 0xF0, 0x48, 0x51, 0xF2, 0xD7, 0x33, - 0x00, 0x53, 0x98, 0xEC, 0x47, 0x39, 0xB9, 0x90, - 0x76, 0x4F, 0x68, 0x3D, 0x9C, 0x92, 0xD5, 0xB8, - 0xAE, 0xD0, 0xF4, 0x67, 0x58, 0xC0, 0x06, 0x08, - 0x14, 0x31, 0xDC, 0xA1, 0x15, 0xDF, 0xCA, 0xE2, - 0x23, 0xFE, 0xE4, 0x8F, 0x0A, 0xFC, 0x8A, 0xA3, - 0xC6, 0xCD, 0x6A, 0x75, 0xFD, 0x42, 0xB7, 0x79, - 0x96, 0x1D, 0x63, 0x18, 0xA9, 0x1C, 0x83, 0x6D, - 0xE0, 0x34, 0x04, 0xA6, 0x13, 0xAC, 0xD1, 0xF7, - 0x26, 0xC3, 0x1F, 0x27, 0x45, 0x95, 0xCB, 0x21, - 0xED, 0x1A, 0x9E, 0x99, 0xEA, 0x40, 0x94, 0x4D, - 0x69, 0xF6, 0xEF, 0xC2, 0xAD, 0x03, 0xB3, 0x1E }; - -static const unsigned char table_146[256] = { - 0x1C, 0xF5, 0x16, 0xD2, 0xCC, 0xDC, 0x1E, 0x29, - 0xE3, 0x17, 0x3B, 0x66, 0x6A, 0xF7, 0x03, 0xB2, - 0x92, 0x45, 0x4D, 0xD6, 0x0C, 0x5E, 0xE6, 0x01, - 0xDE, 0xCE, 0x83, 0xFA, 0x35, 0x02, 0x85, 0xC4, - 0x2E, 0x89, 0x8D, 0xE7, 0x30, 0x93, 0xDD, 0x70, - 0x80, 0xD9, 0x6D, 0x81, 0x07, 0x8E, 0xA9, 0xA6, - 0x5F, 0xC9, 0xF3, 0x9D, 0x65, 0xE8, 0x88, 0x0B, - 0x49, 0xAA, 0xB7, 0x6C, 0x11, 0xFC, 0x6F, 0xA3, - 0xF8, 0x52, 0x0E, 0xD4, 0x08, 0x25, 0x27, 0x33, - 0x2F, 0xF0, 0x2B, 0x47, 0xDA, 0x4C, 0x39, 0x54, - 0xB9, 0xC1, 0xEA, 0x7C, 0x44, 0xEB, 0x06, 0xE1, - 0x8C, 0x9B, 0x74, 0x42, 0x4F, 0x0A, 0x69, 0x2A, - 0x2D, 0xA1, 0x19, 0xD5, 0xC3, 0x87, 0x68, 0xFF, - 0xEC, 0xE4, 0x86, 0xCF, 0xF6, 0x79, 0x34, 0xA8, - 0x72, 0xF4, 0x8B, 0xAF, 0xA5, 0x00, 0xBA, 0x5C, - 0x23, 0xB8, 0xC8, 0x59, 0xBF, 0x6E, 0xCB, 0x20, - 0x1F, 0x53, 0x97, 0x4B, 0xD0, 0x55, 0x5B, 0xDF, - 0x8A, 0xED, 0x9A, 0x62, 0xC5, 0xD7, 0x18, 0x82, - 0xC7, 0x12, 0x15, 0x1B, 0xC0, 0x38, 0xCA, 0x26, - 0xDB, 0xAE, 0xF9, 0x90, 0x1A, 0xF2, 0x56, 0x32, - 0x21, 0x3C, 0x43, 0xEE, 0xA4, 0x13, 0x94, 0xA2, - 0x46, 0x77, 0xBC, 0xB6, 0x9C, 0x0D, 0xCD, 0x37, - 0x63, 0x60, 0x6B, 0x3A, 0x3E, 0xA7, 0xD8, 0xFE, - 0xFB, 0xEF, 0x67, 0xFD, 0xAD, 0xF1, 0x09, 0x1D, - 0xE9, 0x51, 0xB4, 0x95, 0x75, 0x0F, 0xB3, 0xD3, - 0xAB, 0x22, 0xBB, 0x61, 0x7F, 0x5A, 0x58, 0x7B, - 0x73, 0xC2, 0x05, 0xE0, 0x14, 0xE2, 0xAC, 0x91, - 0xBE, 0x4E, 0xC6, 0x7A, 0x84, 0x50, 0x28, 0x3F, - 0xB0, 0x04, 0x7E, 0xD1, 0x40, 0xBD, 0xE5, 0x71, - 0xB1, 0x78, 0x41, 0x9E, 0x57, 0x64, 0x8F, 0x24, - 0x4A, 0x9F, 0x3D, 0x31, 0x36, 0x5D, 0xA0, 0x2C, - 0x7D, 0x96, 0x76, 0x99, 0xB5, 0x48, 0x98, 0x10 }; - -static const unsigned char table_147[32] = { - 0x17, 0x07, 0x0D, 0x16, 0x00, 0x1B, 0x1F, 0x09, - 0x10, 0x11, 0x14, 0x0A, 0x02, 0x06, 0x13, 0x0C, - 0x08, 0x1E, 0x0F, 0x12, 0x05, 0x15, 0x19, 0x01, - 0x1C, 0x1A, 0x03, 0x18, 0x04, 0x0B, 0x1D, 0x0E }; - -static const unsigned char table_148[256] = { - 0xFB, 0x23, 0xBC, 0x5A, 0x8C, 0x02, 0x42, 0x3B, - 0x95, 0x0C, 0x21, 0x0E, 0x14, 0xDF, 0x11, 0xC0, - 0xDB, 0x5E, 0xD3, 0xEA, 0xCE, 0xB4, 0x32, 0x12, - 0x70, 0x68, 0xA3, 0x25, 0x5B, 0x4B, 0x47, 0xA5, - 0x84, 0x9B, 0xFA, 0xD1, 0xE1, 0x3C, 0x20, 0x93, - 0x41, 0x26, 0x81, 0x39, 0x17, 0xA4, 0xCF, 0xB9, - 0xC5, 0x5F, 0x1C, 0xB3, 0x88, 0xC2, 0x92, 0x30, - 0x0A, 0xB8, 0xA0, 0xE2, 0x50, 0x2B, 0x48, 0x1E, - 0xD5, 0x13, 0xC7, 0x46, 0x9E, 0x2A, 0xF7, 0x7E, - 0xE8, 0x82, 0x60, 0x7A, 0x36, 0x97, 0x0F, 0x8F, - 0x8B, 0x80, 0xE0, 0xEB, 0xB1, 0xC6, 0x6E, 0xAE, - 0x90, 0x76, 0xA7, 0x31, 0xBE, 0x9C, 0x18, 0x6D, - 0xAB, 0x6C, 0x7B, 0xFE, 0x62, 0x05, 0xE9, 0x66, - 0x2E, 0x38, 0xB5, 0xB2, 0xFD, 0xFC, 0x7F, 0xE3, - 0xA1, 0xF1, 0x99, 0x4D, 0x79, 0x22, 0xD2, 0x37, - 0x29, 0x01, 0x54, 0x00, 0xBD, 0x51, 0x1B, 0x07, - 0x0B, 0x4A, 0xEE, 0x57, 0xDA, 0x1A, 0x06, 0xCA, - 0xCB, 0x9A, 0xC9, 0x7D, 0xE4, 0xDC, 0xE5, 0x8D, - 0x75, 0x4F, 0xF6, 0xA2, 0x65, 0x7C, 0xD9, 0x9D, - 0x03, 0x27, 0x2D, 0x4C, 0x49, 0xD4, 0x5D, 0x3E, - 0xBA, 0x1D, 0xD8, 0x91, 0x74, 0x10, 0xF8, 0xDE, - 0xEF, 0xF0, 0x6A, 0x04, 0x72, 0x08, 0x78, 0x3A, - 0x53, 0xC4, 0x34, 0xF2, 0x64, 0xAF, 0x86, 0xC3, - 0xF3, 0x73, 0x67, 0xCC, 0x58, 0xF4, 0x96, 0xAC, - 0x3D, 0xE7, 0x15, 0x8E, 0x19, 0x61, 0xF9, 0xB6, - 0xCD, 0x87, 0xAA, 0xB0, 0x1F, 0x6F, 0xAD, 0x28, - 0xC8, 0x69, 0x56, 0xC1, 0x71, 0xED, 0xE6, 0x98, - 0x6B, 0x59, 0xB7, 0xF5, 0x2C, 0xEC, 0xA8, 0x94, - 0x89, 0xBB, 0xA9, 0xD7, 0x2F, 0x8A, 0x4E, 0xD6, - 0x33, 0x16, 0x0D, 0x83, 0x5C, 0x52, 0x85, 0xA6, - 0x40, 0x45, 0x9F, 0x44, 0x63, 0x35, 0x77, 0xFF, - 0x09, 0x43, 0xBF, 0xD0, 0x55, 0xDD, 0x3F, 0x24 }; - -static const unsigned char table_149[32] = { - 0x1B, 0x0B, 0x0C, 0x06, 0x1F, 0x17, 0x04, 0x1A, - 0x1E, 0x02, 0x0F, 0x16, 0x0E, 0x09, 0x10, 0x01, - 0x13, 0x19, 0x11, 0x00, 0x0A, 0x05, 0x03, 0x1C, - 0x18, 0x1D, 0x14, 0x0D, 0x07, 0x08, 0x15, 0x12 }; - -static const unsigned char table_150[256] = { - 0x57, 0xBC, 0x9D, 0x46, 0x14, 0xD0, 0x94, 0x95, - 0x1B, 0x12, 0xB8, 0xD4, 0x53, 0x73, 0x83, 0xE6, - 0x75, 0xE1, 0xD1, 0x0D, 0xDF, 0x23, 0x13, 0x40, - 0xF1, 0x0C, 0xA0, 0xC1, 0x22, 0xDA, 0xE8, 0xFB, - 0xE5, 0xC4, 0x16, 0x9C, 0x3F, 0xC3, 0x78, 0x3A, - 0x06, 0xC7, 0xA8, 0x79, 0xA4, 0xB3, 0x55, 0x88, - 0xA9, 0x82, 0xE3, 0x68, 0xFC, 0x3B, 0x26, 0x81, - 0xB4, 0x0A, 0x7D, 0x96, 0xDB, 0x2C, 0xE2, 0xCD, - 0x92, 0x5C, 0xED, 0x0E, 0x42, 0x98, 0xBE, 0xB7, - 0x63, 0x25, 0x7B, 0xD9, 0xEF, 0x11, 0xB9, 0xA3, - 0xFA, 0x00, 0x2A, 0x91, 0x71, 0xBF, 0xB2, 0x3D, - 0x20, 0x4C, 0xB0, 0x8C, 0x3C, 0x27, 0xAF, 0x09, - 0x10, 0x5D, 0x2B, 0x1D, 0xBD, 0x4B, 0x54, 0xD3, - 0xAB, 0x1A, 0xE7, 0xF8, 0x56, 0x65, 0xA5, 0xAD, - 0xEC, 0x17, 0x45, 0x28, 0xCA, 0xEA, 0x01, 0xF5, - 0x34, 0x84, 0x43, 0x8B, 0x03, 0x02, 0x90, 0x6B, - 0x60, 0xCE, 0x19, 0x86, 0x4F, 0x08, 0x35, 0x9A, - 0xAE, 0x07, 0xE0, 0xB6, 0xD6, 0x2D, 0xD2, 0x89, - 0x5F, 0xA6, 0x72, 0x05, 0x36, 0xB5, 0xC0, 0x5A, - 0x4D, 0xD7, 0x30, 0x37, 0x87, 0x50, 0xA2, 0x48, - 0x29, 0xAC, 0xDE, 0x93, 0x24, 0x6E, 0x1E, 0xF7, - 0x52, 0x5E, 0x41, 0xC8, 0xEB, 0x31, 0x7E, 0xE9, - 0x67, 0x7A, 0x47, 0x85, 0x8D, 0x74, 0x9E, 0x64, - 0x38, 0x9B, 0xBA, 0xCC, 0x9F, 0x8E, 0xEE, 0x0F, - 0xB1, 0x7C, 0x6A, 0xBB, 0x2E, 0x58, 0x70, 0x7F, - 0x4E, 0x4A, 0x1C, 0x5B, 0xF0, 0xA1, 0x61, 0xF6, - 0x15, 0x33, 0xE4, 0xF9, 0x2F, 0x62, 0x1F, 0x76, - 0x32, 0xCB, 0x49, 0xFE, 0x8F, 0xD5, 0xDC, 0x66, - 0x0B, 0x3E, 0xC5, 0x21, 0xC6, 0x6C, 0x18, 0xC2, - 0x6D, 0xFF, 0x51, 0x99, 0xCF, 0xFD, 0x59, 0xA7, - 0xAA, 0x8A, 0xF2, 0x69, 0x39, 0x6F, 0x77, 0xDD, - 0x97, 0xC9, 0xF3, 0x04, 0xD8, 0xF4, 0x80, 0x44 }; - -static const unsigned char table_151[256] = { - 0x78, 0x6C, 0xC5, 0x0C, 0x2D, 0xA7, 0x97, 0x9C, - 0x22, 0x76, 0x3E, 0x81, 0x51, 0x47, 0x59, 0x71, - 0xB1, 0xA2, 0x4A, 0x3C, 0xB5, 0x16, 0x06, 0x95, - 0xB9, 0x01, 0xE6, 0x91, 0x96, 0x1C, 0x1B, 0xAD, - 0x61, 0x64, 0xB2, 0xE7, 0x29, 0x19, 0x52, 0x3B, - 0xFA, 0xAF, 0x30, 0xDB, 0xD4, 0x0B, 0xFE, 0x75, - 0x1F, 0xBE, 0xCB, 0xF6, 0xEA, 0x31, 0xF8, 0xD8, - 0xA3, 0x82, 0x73, 0x1D, 0x99, 0xF0, 0xCC, 0xB6, - 0x46, 0x26, 0xAA, 0x8C, 0x87, 0x90, 0x24, 0x8F, - 0x7A, 0x13, 0xEE, 0xD1, 0xA9, 0x05, 0xB3, 0xF7, - 0x02, 0x7C, 0x4C, 0x1E, 0xFF, 0xE5, 0x77, 0xAB, - 0xD6, 0x98, 0x20, 0x4D, 0xC4, 0x23, 0xF4, 0xA4, - 0x85, 0x9A, 0x8E, 0x1A, 0x0E, 0xF5, 0x15, 0x60, - 0x38, 0x72, 0xE9, 0xF1, 0xC3, 0x68, 0xF2, 0x93, - 0xD3, 0x2A, 0x48, 0x74, 0xC2, 0x57, 0xA1, 0x7D, - 0x94, 0x37, 0x92, 0x5C, 0xE1, 0x41, 0x83, 0xD5, - 0x65, 0x14, 0xA6, 0xDC, 0x44, 0x27, 0xEF, 0xD7, - 0x25, 0x10, 0x2C, 0x7F, 0x40, 0xA5, 0x55, 0xBD, - 0x2B, 0x0D, 0xD0, 0xFC, 0xDF, 0xA0, 0x04, 0x00, - 0x62, 0xB4, 0x5A, 0xEB, 0x6B, 0x84, 0x7E, 0x6A, - 0xDE, 0xED, 0x66, 0x03, 0xFB, 0x2E, 0x4F, 0x4E, - 0xBB, 0x36, 0x5B, 0x18, 0xE3, 0x69, 0x3F, 0xEC, - 0xE4, 0xD2, 0x0A, 0x34, 0x63, 0xCF, 0xA8, 0xF9, - 0x9B, 0x7B, 0x6F, 0xE8, 0x49, 0xC1, 0x09, 0x54, - 0xF3, 0x50, 0x67, 0x79, 0xC0, 0x9F, 0x8D, 0x5F, - 0x17, 0x70, 0x11, 0xC8, 0xBC, 0xC6, 0xE0, 0x35, - 0x39, 0xC7, 0x6E, 0x21, 0xBF, 0xDA, 0x6D, 0x28, - 0x0F, 0xDD, 0x33, 0xAC, 0x8A, 0x12, 0xC9, 0xCD, - 0xB8, 0x45, 0xAE, 0x32, 0xCE, 0xE2, 0x56, 0xFD, - 0x42, 0x89, 0x86, 0xCA, 0x4B, 0x3D, 0x5E, 0xBA, - 0x8B, 0x5D, 0xB0, 0xB7, 0xD9, 0x58, 0x2F, 0x08, - 0x43, 0x3A, 0x53, 0x9E, 0x80, 0x88, 0x07, 0x9D }; - -static const unsigned char table_152[32] = { - 0x02, 0x1A, 0x17, 0x1D, 0x01, 0x03, 0x13, 0x1E, - 0x05, 0x18, 0x06, 0x0A, 0x0C, 0x04, 0x1B, 0x00, - 0x1C, 0x09, 0x1F, 0x16, 0x07, 0x0F, 0x0B, 0x0E, - 0x14, 0x12, 0x0D, 0x10, 0x19, 0x11, 0x08, 0x15 }; - -static const unsigned char table_153[32] = { - 0x0E, 0x14, 0x12, 0x1E, 0x1C, 0x02, 0x06, 0x16, - 0x18, 0x0D, 0x17, 0x0C, 0x1D, 0x11, 0x08, 0x19, - 0x07, 0x0F, 0x13, 0x04, 0x03, 0x1B, 0x0B, 0x1F, - 0x1A, 0x0A, 0x05, 0x10, 0x00, 0x01, 0x15, 0x09 }; - -static const unsigned char table_154[256] = { - 0x27, 0x5A, 0x08, 0x5B, 0xF4, 0x39, 0x13, 0x6F, - 0x67, 0xEA, 0x22, 0xCA, 0x5C, 0xCF, 0x18, 0x7C, - 0x05, 0x87, 0x60, 0xCC, 0x40, 0xC6, 0xE8, 0x6D, - 0xF5, 0x2A, 0x2D, 0xA2, 0x8C, 0x82, 0xE9, 0xDC, - 0xD6, 0x65, 0x74, 0x8E, 0x42, 0x4F, 0x3E, 0x55, - 0xFF, 0xC7, 0x9D, 0x0F, 0x81, 0xE2, 0x4C, 0xE6, - 0xEB, 0x4D, 0x70, 0xD1, 0x49, 0x43, 0x3D, 0x69, - 0x0C, 0x45, 0x28, 0x00, 0x99, 0xAE, 0xEC, 0xB8, - 0xC3, 0x17, 0x93, 0x8D, 0x36, 0x3C, 0x46, 0x2B, - 0x29, 0xC5, 0xB4, 0xB1, 0xD0, 0x0D, 0xAD, 0xFE, - 0xE5, 0xA8, 0x3B, 0x1A, 0x2C, 0xDF, 0x07, 0x86, - 0xB0, 0xD3, 0x7A, 0x59, 0x79, 0x8B, 0xC1, 0x9A, - 0x30, 0xDB, 0x24, 0xF3, 0xD8, 0x04, 0x25, 0xC2, - 0xA3, 0x98, 0x96, 0x7B, 0x71, 0x4E, 0x5E, 0x58, - 0xA5, 0x51, 0x88, 0xDA, 0xF8, 0xC0, 0x7D, 0xF6, - 0x31, 0x5F, 0x09, 0x16, 0x21, 0x62, 0x01, 0x64, - 0x9B, 0x3A, 0x2F, 0x61, 0x19, 0xA1, 0xB7, 0xE0, - 0xB9, 0x12, 0xA0, 0xBA, 0x6E, 0x8A, 0xFB, 0xD9, - 0x38, 0x1B, 0xD5, 0xB3, 0x10, 0xED, 0xE4, 0x6A, - 0x32, 0xBD, 0x75, 0xD4, 0x1C, 0xFD, 0x73, 0x77, - 0x54, 0xC8, 0x97, 0x47, 0x35, 0x94, 0xE3, 0xCD, - 0x6B, 0xBB, 0xF9, 0xAC, 0x11, 0x14, 0xAF, 0x78, - 0x3F, 0xCE, 0x26, 0x44, 0xEE, 0xFC, 0x15, 0x66, - 0x4B, 0xA6, 0x20, 0x23, 0xBE, 0x84, 0x1D, 0x7E, - 0x0B, 0x56, 0x92, 0x0A, 0xFA, 0xF7, 0x48, 0x33, - 0x9E, 0x8F, 0xAB, 0x5D, 0x41, 0x50, 0xA4, 0x7F, - 0x80, 0x4A, 0x68, 0x06, 0x2E, 0x6C, 0xC4, 0x02, - 0x0E, 0x63, 0xF0, 0xC9, 0x91, 0xB2, 0xD2, 0x03, - 0x37, 0xEF, 0x9C, 0x90, 0x83, 0x76, 0x1E, 0xA9, - 0x85, 0xB6, 0x57, 0xD7, 0xF2, 0xF1, 0xE7, 0xDE, - 0xCB, 0xAA, 0xBF, 0x89, 0x1F, 0xA7, 0xBC, 0x9F, - 0x53, 0xE1, 0xDD, 0x72, 0x95, 0x52, 0x34, 0xB5 }; - -static const unsigned char table_155[256] = { - 0x75, 0x58, 0xC5, 0xA5, 0x83, 0x16, 0xF3, 0x7F, - 0x94, 0xDE, 0xA0, 0xF6, 0xFD, 0x89, 0xA8, 0x06, - 0x98, 0x01, 0xD9, 0x69, 0xB7, 0x0F, 0xEA, 0x73, - 0x32, 0xF0, 0x49, 0xBF, 0x02, 0xE7, 0x22, 0x3F, - 0xDB, 0x30, 0x5F, 0x20, 0x6A, 0x93, 0x07, 0xBC, - 0x09, 0x0D, 0x37, 0x24, 0x90, 0x15, 0x80, 0xAF, - 0x8F, 0x59, 0x28, 0xFF, 0x6D, 0x1E, 0x52, 0x62, - 0xE2, 0xDD, 0x85, 0x48, 0xB5, 0xAB, 0x68, 0xAC, - 0x7E, 0x26, 0x2C, 0xF9, 0x2A, 0xBE, 0x5B, 0xCE, - 0x87, 0x1D, 0x96, 0xBD, 0xEF, 0x29, 0xA9, 0xC3, - 0x9D, 0x57, 0x79, 0x6B, 0x7A, 0x82, 0x78, 0x0A, - 0x91, 0xF2, 0x7C, 0xC2, 0x25, 0x88, 0xE3, 0x47, - 0x64, 0x46, 0x8D, 0x19, 0xF4, 0xE6, 0xF1, 0x53, - 0x9C, 0x54, 0x23, 0xAD, 0xA3, 0x86, 0x3A, 0x04, - 0x67, 0x1C, 0xF5, 0x43, 0x05, 0x42, 0xD6, 0x4B, - 0xFB, 0xD4, 0x2B, 0x08, 0x45, 0xD8, 0xCD, 0xEB, - 0x31, 0x4A, 0x5A, 0x34, 0x9B, 0xEC, 0x4D, 0xB4, - 0xC6, 0xFE, 0xD5, 0x5E, 0xC1, 0x39, 0x81, 0xCF, - 0x03, 0x6E, 0x95, 0x50, 0xA1, 0x3B, 0xB3, 0xE5, - 0x3D, 0xB1, 0xB2, 0x41, 0x17, 0x2F, 0x2E, 0xE4, - 0x1F, 0xDC, 0xB0, 0xB6, 0x18, 0x6F, 0x44, 0x12, - 0x0B, 0xCC, 0x4E, 0xC0, 0x51, 0x14, 0x76, 0x3C, - 0xB9, 0x9F, 0xA4, 0xD3, 0xA7, 0xE8, 0x13, 0x55, - 0xC8, 0x8C, 0xD2, 0xEE, 0x65, 0xB8, 0xAA, 0x6C, - 0x2D, 0x4F, 0x56, 0xFA, 0x61, 0x4C, 0xE0, 0x5C, - 0xA6, 0x1A, 0xD1, 0x38, 0xD7, 0x72, 0x60, 0x74, - 0xE1, 0xBA, 0x84, 0x3E, 0x40, 0xF8, 0xC7, 0x36, - 0x27, 0x0C, 0x70, 0x97, 0x9A, 0x7D, 0x35, 0x71, - 0xCA, 0x1B, 0x99, 0x8E, 0xAE, 0x66, 0x63, 0xE9, - 0xC9, 0x11, 0x8A, 0x21, 0x92, 0x5D, 0x77, 0x10, - 0xD0, 0xC4, 0xF7, 0x7B, 0x9E, 0xCB, 0xED, 0x0E, - 0x8B, 0x33, 0xFC, 0xBB, 0x00, 0xA2, 0xDF, 0xDA }; - -static const unsigned char table_156[256] = { - 0x31, 0x25, 0xB1, 0xD3, 0xAF, 0xAE, 0x84, 0x2C, - 0x71, 0x5E, 0xD8, 0x80, 0x6F, 0x3E, 0x48, 0x86, - 0xED, 0x54, 0x6A, 0xC3, 0xBC, 0xBF, 0x0E, 0xEA, - 0x10, 0xA2, 0x9D, 0x91, 0x32, 0xE2, 0x7E, 0x1B, - 0x49, 0x27, 0xFF, 0xDD, 0x8A, 0x2F, 0x8D, 0x38, - 0xFA, 0x3C, 0x03, 0x14, 0x0F, 0x89, 0xCC, 0x07, - 0x1A, 0xA0, 0x97, 0x37, 0xA6, 0xD6, 0x63, 0x87, - 0xA1, 0xC2, 0x4B, 0x39, 0xCB, 0xCF, 0x69, 0x4E, - 0xC9, 0x28, 0x1C, 0xBB, 0x42, 0x2B, 0xA9, 0x78, - 0x5B, 0xF6, 0xE0, 0xD0, 0x5F, 0x46, 0x98, 0xCE, - 0x1F, 0x7A, 0x34, 0x8B, 0xFD, 0x9B, 0xEF, 0x74, - 0x05, 0xF2, 0x02, 0xC6, 0xDF, 0x73, 0x5C, 0x8E, - 0xDE, 0x88, 0x57, 0x3B, 0x85, 0xBD, 0xC0, 0x3A, - 0x45, 0x4D, 0x2D, 0x72, 0x0C, 0x60, 0xCA, 0x5D, - 0x06, 0x04, 0x3D, 0x51, 0x15, 0xAD, 0xE8, 0x67, - 0xBA, 0x43, 0x7D, 0xF8, 0xB2, 0xE6, 0xAB, 0xF4, - 0x23, 0x6E, 0xF0, 0x6B, 0x0B, 0x2E, 0xC8, 0xC4, - 0x4F, 0xA8, 0x6D, 0x26, 0xE9, 0x9C, 0x22, 0xB7, - 0x00, 0xB3, 0x0A, 0x7C, 0x44, 0x55, 0x75, 0xD5, - 0xAA, 0x66, 0x56, 0x24, 0x83, 0x90, 0xA4, 0xF5, - 0xCD, 0xEC, 0x18, 0xDC, 0xFE, 0x96, 0xA3, 0xF7, - 0xD2, 0xFB, 0xD1, 0x65, 0xC5, 0x08, 0x7B, 0x70, - 0x16, 0x9A, 0x20, 0x09, 0x29, 0xDA, 0x52, 0x5A, - 0x59, 0xB4, 0x77, 0x62, 0x9E, 0x19, 0x7F, 0x82, - 0x4C, 0xB6, 0x0D, 0x58, 0xEE, 0x1D, 0xB9, 0x93, - 0x50, 0xD9, 0x30, 0xE4, 0x13, 0x01, 0x36, 0x8F, - 0x53, 0x3F, 0x64, 0xA5, 0xB5, 0xD7, 0x81, 0x41, - 0x17, 0xE5, 0x94, 0xE3, 0xF9, 0x61, 0x76, 0xE1, - 0x9F, 0xFC, 0x1E, 0x12, 0xDB, 0x21, 0x79, 0x2A, - 0xAC, 0xF3, 0x6C, 0xC1, 0x95, 0x92, 0xEB, 0xA7, - 0x11, 0xC7, 0xB8, 0x4A, 0x33, 0xB0, 0x99, 0xE7, - 0xF1, 0x68, 0xBE, 0x35, 0x40, 0x8C, 0xD4, 0x47 }; - -static const unsigned char table_157[32] = { - 0x00, 0x0D, 0x03, 0x02, 0x11, 0x04, 0x18, 0x0B, - 0x14, 0x1D, 0x1C, 0x13, 0x1B, 0x17, 0x10, 0x15, - 0x01, 0x19, 0x07, 0x09, 0x1A, 0x16, 0x12, 0x1E, - 0x08, 0x06, 0x0C, 0x0E, 0x1F, 0x0F, 0x0A, 0x05 }; - -static const unsigned char table_158[256] = { - 0x68, 0x26, 0x80, 0x0B, 0xB8, 0xD5, 0x8C, 0xB7, - 0x65, 0xEF, 0xBC, 0x94, 0x28, 0xB9, 0xB2, 0xD2, - 0x92, 0xA4, 0x55, 0x27, 0xE0, 0x40, 0x6C, 0x41, - 0x25, 0xBD, 0xAF, 0xEA, 0xB1, 0x19, 0xA5, 0xC9, - 0x0E, 0xED, 0xB4, 0xF9, 0x8B, 0x6A, 0xAE, 0xD8, - 0x64, 0x83, 0xC1, 0xD3, 0x04, 0xF4, 0xFA, 0xC3, - 0x46, 0x2C, 0xA8, 0xBB, 0x3A, 0x47, 0x33, 0x8F, - 0x52, 0x86, 0x08, 0x9D, 0x1D, 0x59, 0x8E, 0x91, - 0x32, 0xCF, 0x6B, 0x75, 0xB0, 0x7F, 0xC7, 0x24, - 0x05, 0x6F, 0x00, 0x1C, 0x2D, 0xAC, 0xDA, 0x45, - 0x73, 0xB3, 0x3E, 0xD6, 0x54, 0x61, 0x03, 0x77, - 0xF8, 0xD9, 0xE2, 0x4B, 0xFF, 0xF2, 0x0C, 0x4F, - 0x93, 0x71, 0xA7, 0x3D, 0x66, 0x88, 0x98, 0xF1, - 0xB6, 0x7A, 0x2B, 0xCD, 0x44, 0x3C, 0x37, 0x5A, - 0x96, 0x23, 0x9F, 0xBF, 0x7D, 0x5E, 0x2A, 0x35, - 0x72, 0x79, 0xE1, 0xA3, 0x84, 0x99, 0x38, 0x49, - 0xC8, 0xDB, 0x30, 0xDC, 0xAD, 0x3F, 0xF6, 0x09, - 0x69, 0x95, 0xE5, 0x67, 0xA1, 0xFD, 0xF7, 0x1B, - 0xEC, 0x17, 0xD4, 0xEB, 0x29, 0x36, 0x3B, 0x15, - 0xDE, 0x2E, 0xC5, 0x70, 0x6D, 0x53, 0x56, 0xAB, - 0xC0, 0x43, 0xC2, 0xE7, 0x31, 0xE6, 0xA6, 0x78, - 0x5C, 0x7C, 0x48, 0x10, 0x87, 0xCC, 0x9E, 0x7E, - 0x5F, 0xE9, 0x07, 0x5B, 0xF5, 0xEE, 0xB5, 0xCA, - 0x62, 0x18, 0xBE, 0x20, 0x16, 0xDF, 0x13, 0x4E, - 0x7B, 0x02, 0x11, 0x4C, 0x51, 0x85, 0x0D, 0x22, - 0xF3, 0x14, 0x63, 0x76, 0xD0, 0x0F, 0xE4, 0xCB, - 0xCE, 0xA0, 0x82, 0xE3, 0x01, 0xAA, 0x5D, 0x4A, - 0x4D, 0xFB, 0x39, 0x8A, 0x2F, 0xDD, 0xE8, 0x06, - 0x1A, 0x90, 0x81, 0x50, 0x8D, 0x89, 0x97, 0x1E, - 0xFC, 0x60, 0x12, 0x42, 0x9C, 0xF0, 0x34, 0xD7, - 0xD1, 0x1F, 0x0A, 0x21, 0xA9, 0x6E, 0xC4, 0xBA, - 0x9A, 0x57, 0xA2, 0x74, 0xC6, 0xFE, 0x9B, 0x58 }; - -static const unsigned char table_159[256] = { - 0xE5, 0xBF, 0x84, 0x56, 0xD6, 0x43, 0x3E, 0xA5, - 0x64, 0x87, 0x44, 0x63, 0x4A, 0x4C, 0x8D, 0x24, - 0x1C, 0xDA, 0x89, 0x52, 0x80, 0x4F, 0xE4, 0xBC, - 0xC5, 0xF4, 0x27, 0x75, 0x9C, 0xF0, 0xE1, 0x06, - 0x99, 0x48, 0xF2, 0x57, 0x34, 0x9A, 0xA8, 0x62, - 0xC9, 0xD5, 0x16, 0x6D, 0x55, 0xFA, 0x37, 0x5A, - 0x2A, 0xC6, 0x45, 0xDD, 0x1B, 0x76, 0x50, 0xE2, - 0x69, 0x41, 0x6C, 0xC4, 0x3C, 0x47, 0xA9, 0x92, - 0x00, 0x3D, 0x6F, 0xE7, 0x7A, 0x3A, 0x33, 0x53, - 0xF7, 0x03, 0xA7, 0xB1, 0x15, 0x78, 0x0B, 0x67, - 0x2E, 0x21, 0xF1, 0xD4, 0xB3, 0x98, 0x60, 0x58, - 0xBB, 0x82, 0x1E, 0x70, 0x0A, 0xA2, 0x02, 0x17, - 0xFF, 0x9F, 0xD2, 0xAF, 0xC7, 0xDC, 0x68, 0x83, - 0x42, 0xCA, 0x08, 0x39, 0x20, 0xEC, 0x77, 0x96, - 0x5B, 0xAD, 0x09, 0x6B, 0x40, 0xC2, 0x91, 0x51, - 0x10, 0xD9, 0xF9, 0xC1, 0xB5, 0xDF, 0xDB, 0xC0, - 0x7D, 0xAB, 0xAE, 0x54, 0x35, 0xF3, 0xA1, 0xE6, - 0xEA, 0x14, 0xBA, 0xFC, 0xE8, 0xEB, 0xF6, 0xBD, - 0x8C, 0x72, 0x1F, 0xE9, 0xFB, 0x7C, 0xCF, 0x49, - 0xE3, 0xA3, 0x22, 0x9D, 0x46, 0x71, 0x94, 0x31, - 0x2D, 0x65, 0x2B, 0x32, 0x18, 0xB6, 0x90, 0xF8, - 0x11, 0x5F, 0xA0, 0xEF, 0xED, 0x1A, 0x25, 0x2C, - 0x3B, 0xFD, 0x2F, 0x73, 0xB9, 0x7E, 0xDE, 0xB4, - 0x97, 0x0F, 0x7F, 0x86, 0x93, 0x07, 0x19, 0xCE, - 0xE0, 0xB7, 0xEE, 0x26, 0xD1, 0x01, 0x59, 0x5C, - 0xC3, 0x79, 0x8B, 0xD3, 0x4B, 0x04, 0xD0, 0x29, - 0x0D, 0x3F, 0xB2, 0x30, 0xCC, 0x36, 0xFE, 0xB0, - 0xF5, 0x8E, 0xA6, 0x8A, 0xC8, 0xD8, 0x05, 0xB8, - 0x12, 0xBE, 0x81, 0x4D, 0x38, 0xAC, 0x1D, 0x9E, - 0x66, 0x5E, 0x7B, 0x6E, 0x0C, 0xCD, 0x6A, 0x88, - 0xAA, 0x0E, 0x61, 0x5D, 0x95, 0x4E, 0xD7, 0x74, - 0xCB, 0x9B, 0x13, 0x8F, 0xA4, 0x28, 0x23, 0x85 }; - -static const unsigned char table_160[256] = { - 0x35, 0x44, 0x0E, 0x92, 0x75, 0x83, 0x9D, 0x53, - 0xA5, 0x90, 0xF8, 0xF7, 0x54, 0x74, 0xDF, 0x3D, - 0x5A, 0xAA, 0xC6, 0x26, 0x7A, 0xFC, 0x79, 0x6C, - 0x56, 0xB3, 0x32, 0xE3, 0x1C, 0xF9, 0xDC, 0xE6, - 0xA2, 0x93, 0x71, 0xFF, 0x1D, 0xEB, 0xB2, 0x04, - 0x96, 0x46, 0x0C, 0x2B, 0x17, 0xEE, 0x28, 0x25, - 0xD9, 0xAE, 0x11, 0xA7, 0x40, 0x45, 0xFB, 0x80, - 0x18, 0xF1, 0xCB, 0x2E, 0x24, 0xF3, 0xEC, 0x4F, - 0xAB, 0xD7, 0xD4, 0xC4, 0xFD, 0x4B, 0xAD, 0xC9, - 0x4C, 0x08, 0xAC, 0xF4, 0xCD, 0xB7, 0xF2, 0x15, - 0x02, 0x2F, 0x16, 0x34, 0x65, 0x8A, 0x87, 0xCC, - 0x50, 0x0F, 0x9B, 0xC2, 0xC8, 0x7B, 0xEA, 0x8E, - 0xE4, 0xD6, 0x97, 0x30, 0xA8, 0xA0, 0x94, 0xC5, - 0xE8, 0x12, 0x27, 0xCE, 0x84, 0xDD, 0xB1, 0x47, - 0x7E, 0xE7, 0xE1, 0x3A, 0x37, 0x21, 0x2D, 0x3B, - 0x20, 0x60, 0x1E, 0x1B, 0x82, 0xBE, 0xA3, 0x70, - 0x98, 0xBF, 0xA6, 0x4D, 0x76, 0x86, 0x42, 0x9F, - 0xCF, 0xE0, 0x14, 0x4A, 0x0B, 0xB4, 0x36, 0xF5, - 0x85, 0xB8, 0xC0, 0x6A, 0xE9, 0x7D, 0xBD, 0x4E, - 0x8F, 0x51, 0x0D, 0x5B, 0x6B, 0x58, 0x5F, 0x03, - 0x6F, 0xBC, 0x5D, 0x1F, 0x7F, 0xDB, 0x00, 0xC1, - 0x13, 0xF0, 0xD1, 0xFA, 0xDA, 0x05, 0x39, 0xD3, - 0x38, 0xD2, 0x89, 0xE2, 0x88, 0x5E, 0x5C, 0x6D, - 0xCA, 0xB0, 0x01, 0x63, 0x8B, 0x59, 0xA4, 0xD0, - 0x78, 0x19, 0xB5, 0x62, 0x1A, 0x69, 0x8D, 0x9C, - 0x22, 0x3F, 0x9E, 0x33, 0x72, 0x2A, 0x41, 0x29, - 0xFE, 0xF6, 0x64, 0x7C, 0x66, 0xB6, 0xAF, 0x23, - 0x8C, 0x68, 0x6E, 0x49, 0x07, 0x99, 0x77, 0x3E, - 0x9A, 0x73, 0xD8, 0x55, 0x0A, 0x3C, 0xBA, 0xA9, - 0x52, 0xED, 0x91, 0x09, 0x95, 0xC7, 0x43, 0xD5, - 0x57, 0x61, 0x81, 0xEF, 0x06, 0xDE, 0x48, 0x31, - 0xBB, 0x2C, 0xE5, 0xC3, 0x67, 0xA1, 0x10, 0xB9 }; - -static const unsigned char table_161[256] = { - 0x8F, 0x1A, 0x81, 0xA2, 0x2C, 0x56, 0x6D, 0xCD, - 0x4A, 0x33, 0x50, 0xE9, 0xE0, 0x12, 0x5A, 0x43, - 0x2D, 0x4F, 0xEA, 0x95, 0xFD, 0x49, 0xAB, 0xA3, - 0x79, 0x42, 0x0B, 0xB8, 0x89, 0x40, 0x71, 0x14, - 0x80, 0x55, 0xAF, 0xCF, 0x3E, 0x64, 0x8B, 0x74, - 0xBF, 0x9C, 0x24, 0x97, 0xD1, 0xBA, 0x48, 0xD2, - 0x08, 0x1F, 0xDD, 0xA7, 0xDC, 0x92, 0x30, 0x75, - 0x31, 0x37, 0x67, 0x06, 0x68, 0x72, 0x6F, 0x05, - 0x8A, 0x7C, 0x4C, 0x3C, 0x19, 0x28, 0x86, 0x3D, - 0x93, 0xDA, 0xF4, 0xC7, 0x17, 0x85, 0xAC, 0x02, - 0x78, 0x04, 0xAD, 0x03, 0x8D, 0x11, 0xC5, 0x9D, - 0x3A, 0x73, 0x82, 0x59, 0x51, 0x9F, 0x27, 0x47, - 0xE7, 0xED, 0x1E, 0xFF, 0x34, 0x01, 0x5B, 0x4B, - 0xCA, 0x6C, 0x69, 0xBB, 0x3B, 0xC4, 0x5F, 0xDF, - 0x09, 0x6B, 0x7D, 0xC9, 0x88, 0x45, 0x57, 0xD3, - 0x2A, 0x4E, 0xF1, 0xC2, 0xA9, 0xB6, 0x18, 0xD4, - 0xA0, 0x1C, 0x4D, 0x0E, 0xE5, 0xE1, 0xD7, 0xB2, - 0x0C, 0x3F, 0x00, 0x61, 0x16, 0x0D, 0x32, 0x62, - 0x58, 0x63, 0xEE, 0xEF, 0x2F, 0x5D, 0xB0, 0x20, - 0x7A, 0x10, 0xE6, 0xA1, 0xF9, 0xD8, 0x6E, 0xCB, - 0xF0, 0x9B, 0x84, 0x8E, 0xF2, 0xFE, 0xC8, 0x7F, - 0xBD, 0xF8, 0x07, 0xC6, 0x39, 0xBC, 0xCC, 0x22, - 0x54, 0x15, 0x9A, 0xA4, 0xC1, 0x2B, 0x1B, 0x25, - 0xDE, 0x6A, 0xDB, 0x90, 0xEB, 0xB7, 0xD0, 0x44, - 0xA6, 0xB9, 0xB1, 0x23, 0x9E, 0x65, 0x83, 0xFA, - 0x96, 0xB5, 0x0F, 0xF6, 0xD6, 0xE8, 0x53, 0x13, - 0x76, 0xD5, 0x35, 0x87, 0xE3, 0x38, 0xF5, 0xAE, - 0xB3, 0xCE, 0xE2, 0x70, 0xD9, 0x66, 0x5C, 0x26, - 0xC3, 0xFC, 0xF7, 0x94, 0xF3, 0xEC, 0xFB, 0x99, - 0x91, 0x77, 0xB4, 0x46, 0xA5, 0x98, 0x7B, 0x1D, - 0x52, 0x2E, 0xA8, 0x60, 0x5E, 0x29, 0x21, 0x7E, - 0xBE, 0x0A, 0x36, 0x41, 0xC0, 0x8C, 0xE4, 0xAA }; - -static const unsigned char table_162[256] = { - 0xF7, 0x1B, 0xC0, 0x31, 0x5A, 0x23, 0xEA, 0xE9, - 0xFB, 0x14, 0x6A, 0xE8, 0x04, 0x65, 0x5B, 0x2C, - 0x41, 0xD9, 0xEB, 0xE4, 0x8D, 0x1D, 0xCA, 0x8F, - 0x5E, 0x43, 0xAF, 0x46, 0x0A, 0x01, 0x0C, 0xB4, - 0x95, 0x52, 0x92, 0xE0, 0x10, 0x57, 0x0F, 0x71, - 0xB1, 0x26, 0xD8, 0x05, 0x69, 0x3C, 0x54, 0xDF, - 0xFF, 0x9D, 0x51, 0xA0, 0xA1, 0x0B, 0xC1, 0x20, - 0x6D, 0xFA, 0x47, 0x15, 0x09, 0xD3, 0xE1, 0xA9, - 0x66, 0x12, 0x5C, 0x49, 0x1E, 0x3B, 0xD0, 0x8B, - 0x62, 0xBD, 0x06, 0xE5, 0x00, 0x98, 0x4E, 0x32, - 0xB0, 0x2D, 0x2A, 0x7F, 0x03, 0xD5, 0x99, 0x7E, - 0xAB, 0x22, 0xC6, 0xC3, 0x2F, 0x4C, 0x33, 0x45, - 0xE3, 0x3F, 0xF9, 0xB2, 0xFE, 0x36, 0xE7, 0xF8, - 0x55, 0x0D, 0x56, 0x1F, 0x4B, 0xE6, 0x50, 0x81, - 0xCE, 0x80, 0xCD, 0x67, 0x6B, 0xCF, 0x2E, 0x9B, - 0xBC, 0xBE, 0x11, 0x75, 0x4D, 0xAC, 0x59, 0x40, - 0x85, 0x0E, 0xC9, 0x17, 0xA3, 0x60, 0xED, 0x16, - 0xA4, 0xDD, 0xEE, 0x96, 0x77, 0x83, 0x34, 0xD2, - 0xCB, 0xFC, 0x6C, 0x08, 0xEC, 0x35, 0xF2, 0x6F, - 0x3A, 0x7B, 0x21, 0x4A, 0x70, 0xEF, 0xAD, 0xDE, - 0x90, 0x9E, 0x7D, 0x64, 0x2B, 0x79, 0xF5, 0xF3, - 0x13, 0x1C, 0x7A, 0x07, 0x4F, 0x78, 0x89, 0xB6, - 0x97, 0xF1, 0xD7, 0x7C, 0x48, 0xAE, 0x39, 0xA8, - 0xA6, 0x86, 0x3E, 0x27, 0x87, 0x73, 0x82, 0x24, - 0x30, 0x74, 0x5F, 0xD1, 0x9F, 0x9C, 0x1A, 0x8C, - 0x42, 0x6E, 0x28, 0xB9, 0xF0, 0xC4, 0x68, 0x25, - 0xC5, 0xDC, 0xB8, 0x29, 0xD6, 0x84, 0x3D, 0xBB, - 0x88, 0x76, 0xFD, 0x61, 0x94, 0x91, 0xDA, 0xB7, - 0x72, 0xBA, 0xC2, 0xDB, 0xB5, 0xA5, 0xE2, 0x18, - 0xF6, 0xAA, 0x8A, 0x19, 0x63, 0x9A, 0xA7, 0xC8, - 0xD4, 0x02, 0x8E, 0x37, 0xF4, 0xB3, 0xA2, 0x53, - 0x38, 0xCC, 0x58, 0x44, 0xBF, 0x93, 0x5D, 0xC7 }; - -static const unsigned char table_163[32] = { - 0x1B, 0x14, 0x12, 0x15, 0x11, 0x1D, 0x17, 0x19, - 0x10, 0x09, 0x08, 0x06, 0x1A, 0x16, 0x07, 0x13, - 0x1F, 0x0B, 0x1C, 0x05, 0x0E, 0x00, 0x18, 0x0A, - 0x04, 0x01, 0x03, 0x0C, 0x0D, 0x1E, 0x02, 0x0F }; - -static const unsigned char table_164[32] = { - 0x15, 0x00, 0x10, 0x0B, 0x1D, 0x0A, 0x06, 0x1C, - 0x0D, 0x1F, 0x17, 0x0F, 0x03, 0x14, 0x13, 0x12, - 0x1B, 0x18, 0x08, 0x1E, 0x16, 0x09, 0x1A, 0x04, - 0x02, 0x0C, 0x0E, 0x01, 0x07, 0x19, 0x11, 0x05 }; - -static const unsigned char table_165[256] = { - 0x98, 0xF5, 0x1D, 0xFB, 0x13, 0x20, 0x41, 0xA3, - 0xE3, 0x76, 0x49, 0x7E, 0x60, 0xD8, 0x68, 0x30, - 0x88, 0x45, 0xD5, 0x77, 0x00, 0xC3, 0x09, 0x31, - 0x44, 0x18, 0xD4, 0x14, 0xC8, 0x1B, 0x8B, 0x38, - 0x08, 0x52, 0xD1, 0xF3, 0x69, 0x9F, 0xDA, 0x61, - 0x16, 0x1C, 0xE4, 0x7D, 0xEE, 0xD9, 0x5E, 0x4C, - 0xA7, 0xAA, 0xA6, 0xF6, 0xCF, 0xA0, 0xBA, 0x10, - 0xE2, 0xDE, 0x0F, 0xEA, 0xBC, 0x32, 0x63, 0xC0, - 0x54, 0xC5, 0xBE, 0x71, 0x80, 0x56, 0x5C, 0xA4, - 0xAD, 0x15, 0x9D, 0x11, 0x43, 0x67, 0x95, 0xAE, - 0xC6, 0xC4, 0x91, 0x9C, 0xE5, 0x37, 0xE1, 0x7A, - 0xDB, 0xEF, 0x03, 0x65, 0x86, 0x66, 0x2A, 0xB5, - 0xBF, 0xB4, 0x0D, 0xB3, 0xD7, 0x2D, 0x01, 0xEB, - 0x8C, 0xF2, 0x5A, 0x2E, 0x64, 0x25, 0x02, 0xCB, - 0x4A, 0xB0, 0xCE, 0x35, 0xA8, 0x47, 0x85, 0x33, - 0x34, 0x24, 0x23, 0x7B, 0xB6, 0x48, 0x83, 0x40, - 0x87, 0x57, 0x3C, 0xD6, 0xCD, 0x2C, 0x6D, 0xE7, - 0xBB, 0xED, 0x81, 0x5D, 0x55, 0x46, 0xDD, 0xD3, - 0x70, 0xBD, 0xB8, 0x75, 0x53, 0x6E, 0xD0, 0x99, - 0xCA, 0x58, 0xC7, 0x4B, 0x3D, 0xA5, 0x50, 0x7C, - 0x93, 0x51, 0xB7, 0xFD, 0x05, 0x3A, 0xE8, 0x8F, - 0x28, 0x74, 0x39, 0xF0, 0x7F, 0x4F, 0x06, 0x36, - 0xB2, 0x19, 0x2F, 0x1F, 0x8D, 0x0C, 0xB9, 0xFC, - 0x89, 0x21, 0x12, 0xF7, 0x3F, 0x94, 0x6F, 0xDC, - 0x3E, 0x4E, 0x3B, 0xC9, 0x07, 0x9B, 0x17, 0x9A, - 0x73, 0x6A, 0x5B, 0xA1, 0x1E, 0x8A, 0x04, 0x72, - 0x6C, 0xA2, 0xEC, 0x96, 0xFE, 0xF8, 0x84, 0xC1, - 0x79, 0x0E, 0x62, 0x90, 0x8E, 0xF4, 0x42, 0x29, - 0x92, 0x9E, 0xAC, 0x82, 0x4D, 0xAF, 0x2B, 0x6B, - 0xA9, 0xFF, 0x0A, 0xAB, 0x22, 0x5F, 0xDF, 0xD2, - 0x0B, 0x78, 0xF1, 0xE6, 0x59, 0x27, 0xC2, 0xE0, - 0x1A, 0x26, 0xCC, 0xB1, 0xF9, 0xFA, 0x97, 0xE9 }; - -static const unsigned char table_166[256] = { - 0xCB, 0xEA, 0x2A, 0x36, 0x6D, 0x93, 0x4E, 0xD5, - 0xBC, 0x6A, 0xD4, 0x68, 0xF7, 0x18, 0xAB, 0x8B, - 0x66, 0x95, 0x94, 0x64, 0xB7, 0x00, 0x4D, 0x97, - 0x38, 0xB3, 0xFC, 0xE1, 0xBB, 0x63, 0xF3, 0x1F, - 0x6B, 0x2C, 0x2F, 0x5E, 0xA4, 0x7E, 0xFB, 0xF4, - 0xA8, 0x8A, 0x65, 0x53, 0x90, 0x58, 0x40, 0x60, - 0x28, 0x8E, 0x35, 0x49, 0xED, 0xBD, 0x1B, 0x0B, - 0xBA, 0xB8, 0x61, 0x50, 0xE9, 0x39, 0xEF, 0xC3, - 0x74, 0xB6, 0x46, 0x8D, 0xD9, 0x32, 0x92, 0x9A, - 0x30, 0x01, 0xF2, 0x41, 0xB9, 0xE7, 0x3A, 0xB0, - 0x80, 0x15, 0xDE, 0x7D, 0x7F, 0x09, 0xC2, 0x76, - 0xF8, 0x12, 0x59, 0xDD, 0x1D, 0xE6, 0x75, 0xBE, - 0xA3, 0x04, 0xCA, 0x78, 0x7B, 0xAC, 0xD8, 0x70, - 0xD3, 0xC1, 0x25, 0x6F, 0x03, 0x6C, 0x14, 0x45, - 0xE5, 0x2B, 0x87, 0x83, 0xAA, 0x77, 0x5F, 0x4A, - 0x9C, 0x27, 0x0C, 0x10, 0xAE, 0x56, 0x85, 0x0D, - 0xE3, 0xFA, 0x71, 0xEE, 0x9F, 0x21, 0xC0, 0xCD, - 0xFD, 0xDC, 0x5B, 0x11, 0x02, 0x0F, 0x96, 0x3D, - 0x3C, 0x26, 0xEB, 0x08, 0x7A, 0x82, 0xA7, 0x19, - 0xD7, 0xC5, 0xF6, 0x52, 0x57, 0x88, 0xFF, 0x47, - 0x8F, 0xC6, 0x33, 0xB5, 0x2E, 0x8C, 0x81, 0x91, - 0x44, 0xA6, 0x17, 0xF0, 0x4B, 0x9D, 0x34, 0x73, - 0x72, 0x67, 0xD2, 0x0E, 0xA0, 0x99, 0xA5, 0xAF, - 0xFE, 0x9E, 0x6E, 0xDA, 0x3B, 0xE2, 0x23, 0xD6, - 0xD0, 0x13, 0x89, 0x5A, 0x42, 0x98, 0x5C, 0xD1, - 0x86, 0x24, 0xDF, 0x37, 0xF9, 0xCC, 0xF5, 0xA9, - 0x2D, 0xBF, 0x5D, 0xF1, 0x69, 0xE8, 0xA2, 0x06, - 0x48, 0xC7, 0xDB, 0x29, 0xE4, 0xAD, 0x3E, 0xA1, - 0xC9, 0x4C, 0x1A, 0xCE, 0x62, 0x4F, 0x7C, 0xC8, - 0x05, 0xC4, 0xB1, 0x1E, 0x79, 0x55, 0x84, 0xB2, - 0x20, 0x31, 0x9B, 0xEC, 0xB4, 0xCF, 0x54, 0x22, - 0x1C, 0xE0, 0x51, 0x16, 0x43, 0x07, 0x0A, 0x3F }; - -static const unsigned char table_167[256] = { - 0x91, 0xEA, 0x4F, 0x6A, 0x6E, 0x2D, 0x27, 0x22, - 0x44, 0xA5, 0x6D, 0xE3, 0x45, 0x06, 0xE2, 0x87, - 0x9A, 0xC9, 0x2C, 0x4A, 0x93, 0x6F, 0x00, 0xEB, - 0x7C, 0x7F, 0xA2, 0xFE, 0x40, 0x3C, 0x3F, 0xC0, - 0xC7, 0xFB, 0x8B, 0xDF, 0xA3, 0x28, 0x78, 0x48, - 0x46, 0xD5, 0x70, 0x5C, 0x35, 0x4E, 0xD7, 0x3A, - 0x42, 0x47, 0x5B, 0x26, 0x8E, 0xE0, 0x21, 0xB1, - 0x77, 0x1E, 0x53, 0x4B, 0xCC, 0xE5, 0x65, 0xF6, - 0x66, 0x2A, 0xA0, 0x5E, 0x3E, 0xAD, 0xA8, 0x95, - 0x1B, 0x0D, 0x8A, 0x05, 0x68, 0x59, 0x0C, 0x38, - 0x18, 0xC3, 0x81, 0xA4, 0xFD, 0x13, 0x50, 0xCA, - 0xE8, 0xDD, 0xD9, 0x76, 0x8C, 0xC5, 0xF4, 0x17, - 0xB4, 0x3D, 0xEC, 0x0B, 0x67, 0xC6, 0x8D, 0xE1, - 0xBB, 0x7E, 0xCB, 0x10, 0x99, 0xE9, 0x39, 0xF3, - 0x75, 0xFA, 0xAC, 0x16, 0x54, 0x51, 0xBC, 0x24, - 0x58, 0x08, 0xA7, 0x0F, 0x5D, 0xBF, 0xBA, 0xE7, - 0x9D, 0x2B, 0xB5, 0x29, 0xE4, 0xCD, 0x37, 0x30, - 0x55, 0xAE, 0x1D, 0x4D, 0x94, 0x34, 0x92, 0x1C, - 0x6B, 0xBE, 0x52, 0x7B, 0x33, 0xB0, 0x0A, 0x5A, - 0x03, 0x23, 0x41, 0x49, 0x61, 0x64, 0x73, 0x97, - 0xC2, 0x9F, 0x5F, 0x07, 0x04, 0xF8, 0xC1, 0xFC, - 0x74, 0x02, 0x0E, 0x60, 0x9E, 0xD4, 0x85, 0x88, - 0xC4, 0xF5, 0x90, 0x31, 0xF7, 0xEE, 0x9B, 0xB9, - 0x20, 0xE6, 0xA6, 0x63, 0x79, 0x56, 0x62, 0xF0, - 0x2F, 0xD8, 0x4C, 0x83, 0xF9, 0x36, 0x3B, 0x84, - 0xDE, 0x57, 0xB8, 0xB7, 0x11, 0xF2, 0xC8, 0xD3, - 0xD1, 0x96, 0x19, 0x2E, 0x72, 0x9C, 0xDB, 0xB3, - 0xA1, 0xAA, 0xCE, 0x09, 0x98, 0xED, 0xA9, 0xDA, - 0xAF, 0x86, 0xD0, 0x12, 0xFF, 0xDC, 0x1F, 0xD6, - 0x01, 0xF1, 0xD2, 0x80, 0x43, 0x7A, 0x71, 0x82, - 0xB6, 0xAB, 0x89, 0xBD, 0x8F, 0xEF, 0x7D, 0xB2, - 0x14, 0x15, 0x25, 0x32, 0x6C, 0x69, 0x1A, 0xCF }; - -static const unsigned char table_168[256] = { - 0x28, 0xEE, 0xB1, 0xFD, 0xB3, 0xEF, 0x36, 0x8E, - 0x85, 0x5D, 0x1C, 0x53, 0x1E, 0xDA, 0xBA, 0x3C, - 0xA8, 0x90, 0x99, 0x49, 0x45, 0xE0, 0x27, 0x8D, - 0x22, 0xE4, 0x51, 0x3E, 0xAB, 0xE8, 0x70, 0xF5, - 0x81, 0xE6, 0x34, 0x29, 0xF3, 0x11, 0x46, 0x5F, - 0x5C, 0xA0, 0xD1, 0xE3, 0x15, 0x68, 0x3A, 0x01, - 0xE9, 0xD7, 0x24, 0x5A, 0x18, 0x16, 0x88, 0x3B, - 0x64, 0xA1, 0xDB, 0xBF, 0xAA, 0x43, 0xEA, 0x19, - 0xA2, 0xD5, 0x7B, 0xBD, 0x2A, 0x0E, 0x4F, 0xB5, - 0x4B, 0xB7, 0x5B, 0x73, 0xC9, 0xAC, 0x1B, 0x67, - 0xC7, 0xB4, 0x69, 0x00, 0xBC, 0x6D, 0xC1, 0x04, - 0xF4, 0x74, 0xD6, 0xD0, 0x60, 0xAE, 0x17, 0xFE, - 0x63, 0xB6, 0x89, 0x41, 0x7C, 0x44, 0x8B, 0xDC, - 0x50, 0xE5, 0x79, 0x77, 0x47, 0x9F, 0xA6, 0x3D, - 0x09, 0x8A, 0x2F, 0xC0, 0x0F, 0xCD, 0x2B, 0x4D, - 0x0D, 0xC2, 0x5E, 0xB0, 0x57, 0x62, 0xAF, 0x1A, - 0x21, 0x82, 0x48, 0x9E, 0x38, 0xB9, 0xB8, 0xF2, - 0x37, 0x07, 0xCA, 0xC5, 0x84, 0xDF, 0xF9, 0xEC, - 0x42, 0x6B, 0x8F, 0x6C, 0x3F, 0xC4, 0x94, 0xED, - 0x7A, 0x2D, 0xA3, 0x83, 0xD9, 0x55, 0x02, 0x9A, - 0xA9, 0x75, 0x10, 0x2C, 0xCB, 0x95, 0xBB, 0x6E, - 0x23, 0x65, 0x35, 0x97, 0x56, 0xAD, 0xCE, 0xF8, - 0xF0, 0x0C, 0xE2, 0x52, 0x05, 0x91, 0xCC, 0xC8, - 0x78, 0x06, 0x96, 0x4E, 0x03, 0xD3, 0x98, 0xA7, - 0x13, 0x58, 0x93, 0xD4, 0xDD, 0xC6, 0xFC, 0x25, - 0x9C, 0x86, 0x1F, 0xCF, 0x76, 0xA4, 0x6A, 0xFA, - 0x0B, 0x4A, 0x54, 0x40, 0x59, 0xD8, 0x61, 0xFF, - 0x7F, 0x80, 0x6F, 0x7D, 0xF1, 0x8C, 0x92, 0xDE, - 0x9D, 0xC3, 0xB2, 0xE7, 0xFB, 0x20, 0x31, 0x72, - 0x12, 0xBE, 0x1D, 0xF6, 0x9B, 0x14, 0x26, 0x0A, - 0xEB, 0xF7, 0x71, 0x39, 0x30, 0xA5, 0x87, 0xD2, - 0x66, 0x2E, 0x08, 0x32, 0x4C, 0x33, 0x7E, 0xE1 }; - -static const unsigned char table_169[256] = { - 0xA4, 0x31, 0xA9, 0x3F, 0x13, 0x4D, 0x1B, 0x29, - 0x73, 0x43, 0xF1, 0xE7, 0x9C, 0xC2, 0xF6, 0xCD, - 0xA1, 0x94, 0x0D, 0x27, 0xFE, 0x7B, 0x9B, 0x0B, - 0x89, 0xBA, 0x23, 0xEC, 0x76, 0xC3, 0x6C, 0xD8, - 0x8D, 0xF8, 0xF9, 0x7D, 0x68, 0x5B, 0x61, 0x87, - 0x28, 0x14, 0x55, 0x0C, 0xFC, 0xD9, 0x07, 0xE8, - 0x36, 0x88, 0x67, 0x4C, 0xEA, 0xBD, 0xF5, 0x9D, - 0xB6, 0xC6, 0x24, 0x32, 0x93, 0x03, 0x79, 0x8C, - 0x12, 0x84, 0xFF, 0x7E, 0x42, 0xE4, 0x3C, 0xF2, - 0x50, 0xEB, 0x1F, 0x47, 0xB0, 0xA5, 0xB1, 0x71, - 0x30, 0x5F, 0x5C, 0x53, 0xF7, 0x10, 0xC5, 0x6E, - 0xE0, 0xDE, 0xC8, 0x58, 0xB7, 0x90, 0xA6, 0x95, - 0x70, 0x8F, 0xFD, 0xC1, 0x48, 0xB5, 0x19, 0x92, - 0xBC, 0x15, 0x4E, 0xE6, 0x11, 0xDD, 0x81, 0x0E, - 0xBB, 0x75, 0x5D, 0x4A, 0xAB, 0x2D, 0x02, 0x54, - 0x4B, 0x66, 0xD6, 0x2B, 0x2A, 0xE5, 0x26, 0xE1, - 0xEE, 0xE9, 0x8B, 0x6A, 0x7A, 0xF4, 0x51, 0x39, - 0x1C, 0xC9, 0xCF, 0x77, 0x00, 0xF3, 0x25, 0xCC, - 0x08, 0xFB, 0x0F, 0x3E, 0xCE, 0xED, 0x3D, 0x56, - 0xEF, 0x1D, 0x85, 0x96, 0x52, 0xA8, 0xD3, 0xCB, - 0xE3, 0x33, 0x06, 0x7C, 0xAE, 0x72, 0x09, 0x04, - 0x91, 0xC4, 0x5A, 0x69, 0x98, 0xB4, 0x40, 0xDF, - 0x7F, 0x9F, 0xAA, 0x83, 0xE2, 0x78, 0x74, 0x20, - 0xAD, 0x6D, 0xDC, 0xD4, 0xCA, 0x60, 0xF0, 0x35, - 0x37, 0xD0, 0x18, 0x1A, 0x64, 0x3A, 0x99, 0xDB, - 0x62, 0x44, 0x2C, 0x82, 0x8E, 0xD7, 0xD1, 0xFA, - 0x16, 0xD5, 0x46, 0xBF, 0xA7, 0xC0, 0x2E, 0x3B, - 0x01, 0x63, 0xB2, 0x1E, 0x05, 0x21, 0xB8, 0x17, - 0x22, 0x97, 0xAF, 0x4F, 0x86, 0x34, 0xDA, 0xC7, - 0xA3, 0xA0, 0xB3, 0x2F, 0xAC, 0x49, 0xD2, 0x57, - 0x6F, 0x9A, 0x65, 0xB9, 0x41, 0xBE, 0x8A, 0xA2, - 0x6B, 0x0A, 0x59, 0x9E, 0x5E, 0x38, 0x45, 0x80 }; - -static const unsigned char table_170[256] = { - 0xE3, 0x00, 0x99, 0x03, 0xF6, 0xDD, 0xD1, 0x41, - 0x58, 0x7E, 0xD9, 0x46, 0x04, 0xAF, 0x5C, 0x43, - 0xDE, 0x5E, 0xFC, 0x97, 0x3D, 0x68, 0xC8, 0x37, - 0x3C, 0xFB, 0x0F, 0x5A, 0xBE, 0xFA, 0x4C, 0x82, - 0x0C, 0xA0, 0x0A, 0xD4, 0x9D, 0xCE, 0x78, 0xA8, - 0x55, 0x56, 0x60, 0xAA, 0xC9, 0x96, 0x62, 0xEA, - 0x0D, 0xB8, 0xE2, 0x84, 0x17, 0xAE, 0x2B, 0x2C, - 0x91, 0x57, 0x38, 0x01, 0xA9, 0xCD, 0x34, 0xBA, - 0x8D, 0xC0, 0xD6, 0xFF, 0xF2, 0xD3, 0x5F, 0x26, - 0xCA, 0x9B, 0x21, 0x75, 0x4E, 0x49, 0x20, 0x59, - 0x39, 0xBF, 0x90, 0x6C, 0xFE, 0x8F, 0x2F, 0x18, - 0x36, 0xD7, 0xB4, 0xAC, 0xBD, 0xF3, 0x1D, 0x4F, - 0xA3, 0x74, 0x5B, 0x44, 0x05, 0x9C, 0x6D, 0x6B, - 0x1E, 0xE8, 0x25, 0x16, 0x80, 0xCC, 0x29, 0xC7, - 0x94, 0x4A, 0xF5, 0xF4, 0x27, 0x85, 0xBB, 0x24, - 0xDA, 0xB5, 0x76, 0x69, 0xA5, 0x54, 0x23, 0x31, - 0x11, 0xA4, 0x09, 0xE4, 0x64, 0x10, 0xC5, 0xC1, - 0x7D, 0xE7, 0x92, 0xF8, 0x9E, 0x6A, 0x15, 0x8B, - 0x98, 0x42, 0x52, 0x66, 0x0B, 0xA1, 0x35, 0x1A, - 0x14, 0x7C, 0xE1, 0x9F, 0x28, 0xF1, 0x1B, 0xA6, - 0x71, 0x73, 0x81, 0xAB, 0xE6, 0x95, 0x06, 0x1F, - 0xC6, 0xB0, 0x51, 0x0E, 0xEE, 0x77, 0xF0, 0xD8, - 0xC2, 0x89, 0x7B, 0x07, 0xA2, 0xB7, 0x19, 0x67, - 0x2E, 0x8E, 0x47, 0xA7, 0xEF, 0x32, 0xD2, 0x93, - 0xDC, 0x9A, 0xB2, 0xED, 0x45, 0xC4, 0x50, 0x3F, - 0xE5, 0xCF, 0x88, 0x1C, 0x7A, 0x79, 0xEB, 0x70, - 0x2A, 0x7F, 0xBC, 0xDB, 0xD0, 0xB1, 0xCB, 0x08, - 0x86, 0x5D, 0x53, 0x72, 0xB6, 0x4B, 0xB3, 0x22, - 0xC3, 0x6F, 0xB9, 0xD5, 0x3B, 0x13, 0x2D, 0xAD, - 0x33, 0xFD, 0x02, 0x40, 0x8A, 0x3A, 0xF7, 0xE0, - 0x8C, 0x3E, 0x61, 0x6E, 0xE9, 0x63, 0xF9, 0xEC, - 0x48, 0x30, 0x87, 0x83, 0x12, 0x4D, 0x65, 0xDF }; - -static const unsigned char table_171[32] = { - 0x07, 0x06, 0x11, 0x08, 0x0C, 0x1F, 0x19, 0x02, - 0x14, 0x04, 0x0D, 0x18, 0x1A, 0x05, 0x17, 0x13, - 0x1C, 0x1B, 0x15, 0x03, 0x01, 0x0F, 0x16, 0x1E, - 0x1D, 0x10, 0x00, 0x12, 0x0B, 0x0E, 0x09, 0x0A }; - -static const unsigned char table_172[32] = { - 0x11, 0x01, 0x1F, 0x06, 0x1A, 0x04, 0x02, 0x09, - 0x05, 0x0D, 0x0B, 0x18, 0x0E, 0x12, 0x1B, 0x17, - 0x07, 0x08, 0x1D, 0x1E, 0x14, 0x19, 0x16, 0x15, - 0x03, 0x0C, 0x00, 0x10, 0x0A, 0x1C, 0x0F, 0x13 }; - -static const unsigned char table_173[32] = { - 0x1F, 0x0B, 0x13, 0x00, 0x16, 0x15, 0x14, 0x0A, - 0x1D, 0x05, 0x1E, 0x1A, 0x0F, 0x04, 0x0E, 0x01, - 0x19, 0x07, 0x02, 0x12, 0x0C, 0x17, 0x08, 0x09, - 0x03, 0x11, 0x18, 0x10, 0x1C, 0x1B, 0x06, 0x0D }; - -static const unsigned char table_174[32] = { - 0x02, 0x1B, 0x0C, 0x17, 0x1F, 0x05, 0x15, 0x1E, - 0x16, 0x09, 0x1A, 0x12, 0x0F, 0x1C, 0x18, 0x0A, - 0x19, 0x10, 0x0D, 0x13, 0x04, 0x11, 0x08, 0x14, - 0x1D, 0x0E, 0x06, 0x00, 0x01, 0x07, 0x0B, 0x03 }; - -static const unsigned char table_175[32] = { - 0x00, 0x06, 0x0B, 0x08, 0x0C, 0x04, 0x1A, 0x1C, - 0x05, 0x1E, 0x14, 0x03, 0x0A, 0x18, 0x12, 0x1D, - 0x16, 0x1F, 0x07, 0x09, 0x0F, 0x0E, 0x17, 0x13, - 0x11, 0x19, 0x10, 0x0D, 0x1B, 0x02, 0x01, 0x15 }; - -static const unsigned char table_176[32] = { - 0x12, 0x03, 0x1A, 0x15, 0x04, 0x19, 0x0B, 0x1B, - 0x17, 0x1E, 0x0D, 0x05, 0x11, 0x14, 0x1C, 0x00, - 0x18, 0x10, 0x0A, 0x06, 0x0E, 0x08, 0x02, 0x07, - 0x13, 0x09, 0x16, 0x1D, 0x0F, 0x0C, 0x01, 0x1F }; - -static const unsigned char table_177[256] = { - 0x5E, 0x4D, 0x76, 0xFE, 0xB5, 0x50, 0x83, 0x23, - 0x72, 0xDD, 0x93, 0x08, 0x69, 0xAD, 0xEC, 0x3B, - 0x0B, 0x9A, 0x36, 0xC9, 0xCA, 0xBE, 0xF7, 0x30, - 0x19, 0x39, 0x2C, 0xAB, 0xE3, 0x7B, 0xBC, 0x32, - 0xA0, 0xE4, 0xA6, 0xB6, 0xCB, 0xC8, 0x37, 0x07, - 0xD2, 0xA1, 0xD9, 0xF6, 0xBF, 0xF5, 0x88, 0x01, - 0x95, 0x0F, 0x03, 0xFD, 0xE6, 0x68, 0x90, 0x61, - 0x21, 0x6D, 0x3C, 0x62, 0x34, 0x2B, 0x71, 0x4B, - 0x44, 0x64, 0x75, 0xA2, 0x6A, 0xFF, 0x29, 0xBD, - 0x35, 0x15, 0xF9, 0xC1, 0x09, 0x45, 0xB2, 0xF2, - 0x3F, 0xCE, 0xB0, 0xC0, 0xB8, 0x00, 0x05, 0xD7, - 0x11, 0xC6, 0x78, 0x53, 0x9E, 0xB3, 0xED, 0x56, - 0x22, 0x5C, 0x9D, 0x6C, 0x99, 0x43, 0x2F, 0xAE, - 0xEB, 0x40, 0x8C, 0x1F, 0xC2, 0xDF, 0x92, 0x65, - 0x6F, 0x79, 0x5D, 0x5B, 0xAA, 0xDB, 0xF1, 0x96, - 0xD4, 0xF4, 0x8B, 0x51, 0xD5, 0xE2, 0xBB, 0x80, - 0x17, 0x7C, 0x2A, 0x6E, 0xDE, 0xEA, 0x94, 0x31, - 0xA4, 0x2D, 0xC3, 0x8D, 0x55, 0x14, 0x9B, 0x0E, - 0x7D, 0xC4, 0x06, 0x33, 0x73, 0xE9, 0x7A, 0x38, - 0x5F, 0x89, 0x84, 0xD6, 0xA8, 0x13, 0xE8, 0xCF, - 0x46, 0xD0, 0x7F, 0x24, 0x8F, 0xF8, 0x87, 0x1B, - 0x47, 0x02, 0x0C, 0x97, 0x52, 0xFB, 0x8E, 0x20, - 0x70, 0x3E, 0x7E, 0xD1, 0xE5, 0xEE, 0xCC, 0x91, - 0x74, 0xCD, 0x42, 0x04, 0x8A, 0xEF, 0xE1, 0x10, - 0x4F, 0x1C, 0x28, 0x9F, 0xD8, 0x0A, 0x18, 0x49, - 0x9C, 0x16, 0xF3, 0x82, 0x57, 0x1D, 0x26, 0x66, - 0x27, 0x86, 0xE7, 0x59, 0xFA, 0x25, 0x54, 0x0D, - 0x98, 0xDC, 0xF0, 0x3D, 0x63, 0x1E, 0x77, 0x3A, - 0xDA, 0xB7, 0x6B, 0x2E, 0x48, 0x4C, 0xBA, 0xC7, - 0x60, 0xAC, 0x1A, 0xB9, 0xFC, 0xA3, 0xA7, 0xA5, - 0xB4, 0x67, 0xA9, 0x81, 0xB1, 0x12, 0xD3, 0x85, - 0x5A, 0xC5, 0xE0, 0x58, 0x41, 0x4E, 0x4A, 0xAF }; - -static const unsigned char table_178[256] = { - 0x33, 0xBA, 0x98, 0xDA, 0x07, 0x2C, 0x22, 0x9B, - 0xE0, 0xED, 0xB7, 0xA1, 0x93, 0xEB, 0xDC, 0x49, - 0xDF, 0xE1, 0x6C, 0xC2, 0x64, 0x52, 0xD0, 0x8F, - 0xA2, 0x48, 0x26, 0x21, 0x6E, 0x5E, 0x0B, 0x7C, - 0x0D, 0x90, 0xA4, 0xCE, 0xF5, 0x5F, 0xF9, 0x1D, - 0x55, 0x83, 0x8D, 0xFB, 0x38, 0xB3, 0xF2, 0x67, - 0xDE, 0x0A, 0xBE, 0xEC, 0x5B, 0x35, 0x08, 0x50, - 0xE7, 0x56, 0x4A, 0x02, 0xBC, 0x5A, 0xBD, 0x43, - 0x6F, 0x79, 0xB2, 0xF7, 0x60, 0xE9, 0xA0, 0x1B, - 0xC8, 0xDD, 0x9D, 0xA3, 0x5C, 0x61, 0x77, 0x72, - 0x9C, 0x31, 0x0E, 0x05, 0x1E, 0x12, 0xF1, 0xC9, - 0x78, 0x4E, 0x15, 0x7D, 0x54, 0xCB, 0x73, 0xEA, - 0xC5, 0x2B, 0x0F, 0x7E, 0x42, 0x96, 0xC6, 0x74, - 0x09, 0x65, 0x34, 0xE6, 0x63, 0xA6, 0x70, 0xD3, - 0x27, 0x87, 0x3A, 0x16, 0x7B, 0x13, 0x06, 0x40, - 0x46, 0x69, 0xAD, 0x88, 0x81, 0xC0, 0x37, 0x58, - 0xD1, 0x8A, 0x8E, 0x9A, 0x5D, 0x6D, 0xC7, 0xC3, - 0xD2, 0xF4, 0x3F, 0x57, 0x3C, 0x4F, 0xA9, 0x6A, - 0x92, 0xA5, 0x97, 0x0C, 0x2A, 0x36, 0x47, 0xDB, - 0x8C, 0xEE, 0x03, 0x89, 0x7F, 0x91, 0x24, 0x80, - 0x2F, 0x62, 0xE4, 0xAF, 0x17, 0x99, 0xD6, 0xCD, - 0xFE, 0x76, 0x1C, 0xD4, 0x3E, 0xFF, 0xD8, 0xC4, - 0x39, 0x32, 0xCF, 0xE2, 0xE3, 0x53, 0xD7, 0xCC, - 0xD9, 0x11, 0xAA, 0x1F, 0x01, 0x3B, 0x51, 0xB5, - 0x94, 0x4B, 0x28, 0xF0, 0xAC, 0x44, 0x14, 0x4C, - 0xB9, 0xA7, 0xB8, 0x1A, 0xD5, 0xCA, 0xE8, 0x82, - 0x9F, 0x2D, 0xAB, 0x2E, 0x29, 0xFD, 0x68, 0xB1, - 0x66, 0xC1, 0x7A, 0xFA, 0x71, 0x04, 0xA8, 0xB0, - 0x59, 0x18, 0xAE, 0x25, 0x3D, 0xE5, 0xF6, 0x41, - 0x86, 0x75, 0x6B, 0xBB, 0xFC, 0x84, 0x8B, 0x85, - 0x10, 0x23, 0xB6, 0xF3, 0x19, 0x30, 0x20, 0x4D, - 0x95, 0x9E, 0xBF, 0xEF, 0xF8, 0x45, 0x00, 0xB4 }; - -static const unsigned char table_179[256] = { - 0x50, 0x3D, 0x41, 0x42, 0x06, 0x5B, 0xD6, 0x34, - 0x9D, 0x3C, 0x7B, 0x14, 0xE2, 0x9B, 0x80, 0x15, - 0x51, 0x01, 0x6A, 0x30, 0xD7, 0xFC, 0x61, 0x4B, - 0x8A, 0xEC, 0x38, 0x71, 0x70, 0x2E, 0x1C, 0x72, - 0x79, 0x26, 0x4C, 0x48, 0xED, 0xAD, 0x25, 0x53, - 0x03, 0xD9, 0xB5, 0x0D, 0x8E, 0x19, 0xCC, 0xBE, - 0xE1, 0x91, 0x64, 0xA6, 0x21, 0xCE, 0x76, 0xAB, - 0x9F, 0xD1, 0xB6, 0x23, 0x6D, 0xB0, 0x90, 0xBD, - 0x09, 0x3A, 0x5E, 0xD0, 0x73, 0x10, 0x44, 0x08, - 0xFF, 0xB8, 0x24, 0x58, 0xDB, 0x65, 0x95, 0xAA, - 0xE9, 0xC4, 0x32, 0x2B, 0x84, 0xC9, 0xC7, 0xB1, - 0x4F, 0x0C, 0xCB, 0x11, 0x4E, 0x22, 0x4A, 0x16, - 0xDE, 0xBC, 0xEE, 0x68, 0x13, 0xFA, 0xC3, 0x98, - 0xEB, 0x29, 0x43, 0x9A, 0xA1, 0xE0, 0xF0, 0x3F, - 0x2F, 0x1B, 0xC2, 0x66, 0x35, 0xF5, 0xC8, 0xD8, - 0x5A, 0xE5, 0x87, 0x47, 0xD3, 0x7A, 0xE6, 0x39, - 0x77, 0x81, 0xF2, 0x0E, 0x83, 0x7E, 0x17, 0x6C, - 0xB3, 0x5C, 0xE8, 0xD2, 0xC0, 0xA4, 0xF9, 0x86, - 0xCD, 0xFB, 0x54, 0x7C, 0xBF, 0x2D, 0x82, 0xDA, - 0x96, 0x74, 0x97, 0xC5, 0x7D, 0x27, 0x57, 0x56, - 0xDC, 0xBA, 0x69, 0x8C, 0x9C, 0x88, 0xB4, 0x8D, - 0x37, 0xEA, 0x3B, 0x33, 0x2C, 0xB2, 0x45, 0xF7, - 0xC1, 0x1E, 0x46, 0x02, 0x6B, 0x3E, 0xA7, 0xD5, - 0x05, 0x0A, 0xA9, 0x1D, 0xA3, 0x4D, 0xAE, 0x6F, - 0x49, 0xDD, 0x8F, 0xEF, 0xBB, 0x67, 0x0B, 0x40, - 0x9E, 0xF1, 0x78, 0x28, 0xDF, 0x52, 0xF4, 0x92, - 0x94, 0x0F, 0xB9, 0x93, 0xF6, 0x1F, 0xAF, 0xA8, - 0xCA, 0xE4, 0x59, 0x7F, 0x85, 0x75, 0xC6, 0xFD, - 0x00, 0xB7, 0x55, 0xFE, 0x8B, 0x62, 0x5F, 0x12, - 0xF8, 0xD4, 0x89, 0xA0, 0x20, 0xE7, 0xCF, 0x60, - 0x5D, 0xAC, 0x1A, 0x36, 0x63, 0x99, 0x31, 0xF3, - 0x2A, 0x04, 0x18, 0xA5, 0xA2, 0x6E, 0x07, 0xE3 }; - -static const unsigned char table_180[256] = { - 0xDA, 0xCC, 0x72, 0xA6, 0xE7, 0x07, 0xFD, 0x25, - 0x92, 0x39, 0x49, 0x02, 0xD6, 0x09, 0xA8, 0x65, - 0x2E, 0x6C, 0xA1, 0x19, 0xBF, 0x21, 0x11, 0xC7, - 0x3F, 0x9F, 0xF4, 0x51, 0xAF, 0x8C, 0xFE, 0xCD, - 0x7A, 0xEB, 0x5A, 0xF7, 0x18, 0x69, 0xB9, 0xED, - 0x37, 0x45, 0x13, 0xB4, 0xAA, 0x75, 0x47, 0x42, - 0xA3, 0x81, 0x88, 0x70, 0xC1, 0x36, 0x73, 0x1D, - 0x3B, 0x22, 0xB6, 0x35, 0xE9, 0x31, 0x56, 0x23, - 0xE1, 0xF5, 0xAD, 0x46, 0x99, 0x32, 0xE4, 0x40, - 0x00, 0x0F, 0x05, 0xC6, 0x33, 0x84, 0x7B, 0x4D, - 0x4B, 0x7D, 0x91, 0x3D, 0xCE, 0x64, 0x77, 0x55, - 0xD7, 0x2B, 0x2F, 0x2C, 0xB8, 0xD3, 0x85, 0xD1, - 0xB5, 0x6A, 0xF9, 0x41, 0x08, 0xBB, 0x87, 0xEC, - 0x78, 0xE0, 0xEE, 0x8D, 0x01, 0x58, 0x15, 0x8F, - 0x06, 0xF0, 0x8B, 0x27, 0x0D, 0x0B, 0x6D, 0xBD, - 0xCA, 0x2A, 0xA2, 0xE6, 0xDD, 0xBC, 0x4E, 0x5D, - 0x74, 0x04, 0x3A, 0x96, 0x66, 0x12, 0x1E, 0xF2, - 0xF6, 0xC4, 0xAE, 0x3C, 0x0C, 0x90, 0x68, 0xD8, - 0x24, 0x5E, 0x79, 0x10, 0xAC, 0xDF, 0x9B, 0xC5, - 0x44, 0xC3, 0x50, 0x5C, 0xA5, 0x89, 0x60, 0x5F, - 0x48, 0x17, 0x34, 0xA7, 0xE2, 0xF3, 0xD9, 0x3E, - 0x9C, 0xB7, 0x7C, 0x1F, 0xA9, 0xD4, 0xA4, 0x0E, - 0x8E, 0x4C, 0xDC, 0xF8, 0xF1, 0x98, 0xDE, 0x2D, - 0x61, 0xCB, 0xD5, 0x43, 0x86, 0x26, 0xB0, 0x7F, - 0x7E, 0xFF, 0xAB, 0x83, 0x14, 0x9A, 0x80, 0x16, - 0x30, 0xA0, 0x53, 0x97, 0x52, 0x9E, 0xB1, 0x1B, - 0xD0, 0x1A, 0xC8, 0x57, 0xBA, 0x6E, 0xFA, 0x94, - 0xE8, 0x63, 0x5B, 0x29, 0xEF, 0x71, 0x8A, 0x03, - 0xB3, 0x76, 0xC9, 0xD2, 0xBE, 0xE5, 0x82, 0x1C, - 0x95, 0x9D, 0x4A, 0x28, 0xEA, 0x0A, 0xC0, 0xE3, - 0x6F, 0x20, 0x54, 0xFB, 0x93, 0xFC, 0x6B, 0x38, - 0x62, 0x4F, 0xCF, 0xB2, 0xC2, 0x59, 0xDB, 0x67 }; - -static const unsigned char table_181[256] = { - 0x2B, 0xED, 0x14, 0x05, 0x80, 0xCC, 0x5A, 0xF8, - 0x43, 0xB7, 0x86, 0xC6, 0xEE, 0xA6, 0xD7, 0xD6, - 0xA0, 0xC4, 0x21, 0x34, 0xB1, 0x8C, 0xF9, 0xF4, - 0x7C, 0x53, 0x06, 0xD4, 0x6B, 0x3F, 0xE1, 0x12, - 0x6A, 0xCE, 0xCF, 0xBF, 0x74, 0x3E, 0xD5, 0xCB, - 0x97, 0x01, 0xA2, 0x2D, 0xAE, 0xF7, 0x17, 0x29, - 0x47, 0x03, 0x0E, 0xE9, 0x82, 0x46, 0x94, 0xAF, - 0x2A, 0x90, 0xFE, 0x4A, 0x7E, 0x0C, 0x71, 0xB6, - 0xA5, 0xF2, 0x67, 0x41, 0xBA, 0xC2, 0x8A, 0x9D, - 0x36, 0xFF, 0x50, 0x2E, 0xC3, 0x91, 0x9C, 0x37, - 0x66, 0xAD, 0xB2, 0x1F, 0xE4, 0xE3, 0x9F, 0xDD, - 0x87, 0xC0, 0xE6, 0xEF, 0x13, 0x70, 0x5B, 0xDE, - 0x5C, 0x75, 0x7F, 0x4F, 0x44, 0xCA, 0x55, 0x57, - 0xF0, 0x26, 0xA7, 0xC7, 0x10, 0x51, 0x00, 0xB3, - 0x5D, 0x99, 0x81, 0x3B, 0xB9, 0x1C, 0x64, 0x7B, - 0xFB, 0xD9, 0x8D, 0x4E, 0xAC, 0x25, 0xBB, 0x69, - 0xDF, 0x02, 0x9E, 0x2C, 0xAB, 0xF3, 0x65, 0x09, - 0xA3, 0x6C, 0xC1, 0x76, 0x52, 0x30, 0xD8, 0x3A, - 0x40, 0x18, 0x59, 0xD0, 0xE5, 0xB4, 0x5F, 0x33, - 0x68, 0x92, 0x2F, 0xB8, 0x93, 0xD1, 0xEB, 0xA4, - 0xFC, 0x77, 0x19, 0x62, 0xC9, 0x49, 0x84, 0x1A, - 0x9A, 0xE7, 0x31, 0xE8, 0xE2, 0x58, 0xF1, 0x4B, - 0x1E, 0x0B, 0x39, 0xFD, 0x42, 0x7A, 0x89, 0x38, - 0x11, 0x98, 0x63, 0x08, 0xE0, 0xEA, 0xBE, 0xB0, - 0x45, 0x1B, 0x4C, 0x54, 0xC8, 0x27, 0x3D, 0x73, - 0x04, 0x8F, 0x79, 0xBC, 0x6F, 0x0D, 0x0F, 0xA1, - 0x60, 0xDC, 0xC5, 0xFA, 0x8E, 0xDA, 0x15, 0x96, - 0xD3, 0x07, 0xF5, 0x3C, 0x88, 0x72, 0x1D, 0x4D, - 0x8B, 0x61, 0x0A, 0xDB, 0xAA, 0x20, 0x23, 0xEC, - 0x6E, 0x22, 0x48, 0x28, 0xBD, 0xA9, 0x56, 0x5E, - 0x85, 0xA8, 0x95, 0x6D, 0x16, 0x78, 0xB5, 0xF6, - 0x32, 0x24, 0x7D, 0x9B, 0xD2, 0x83, 0x35, 0xCD }; - -static const unsigned char table_182[256] = { - 0x06, 0x7F, 0x66, 0xB5, 0xBA, 0x1E, 0xFD, 0x51, - 0x81, 0x8D, 0x28, 0xA3, 0x15, 0x37, 0xDC, 0x58, - 0xE6, 0x3D, 0xB4, 0xB9, 0x2E, 0xA0, 0x2F, 0xC4, - 0xCB, 0xB1, 0x25, 0xBF, 0xC1, 0x4E, 0x5A, 0xE4, - 0x0F, 0x10, 0x7C, 0x52, 0xA7, 0x29, 0x76, 0x55, - 0xAA, 0x70, 0x62, 0x54, 0x43, 0x93, 0x3A, 0x7D, - 0x5B, 0x56, 0x33, 0x64, 0x74, 0x2A, 0xD9, 0x9B, - 0x88, 0xC0, 0x3C, 0x63, 0xDE, 0xF4, 0x73, 0xDF, - 0x9E, 0xB2, 0xA8, 0x4F, 0x04, 0x57, 0x47, 0x87, - 0x14, 0xFC, 0x27, 0x53, 0x83, 0xDB, 0xD7, 0x20, - 0x96, 0x31, 0xD0, 0xCF, 0x30, 0x19, 0x69, 0x1A, - 0xAE, 0x3B, 0x11, 0x0C, 0xA6, 0x95, 0x8A, 0xF2, - 0x1B, 0xCC, 0x78, 0xEF, 0xB3, 0x71, 0x84, 0xA2, - 0xF1, 0x7A, 0x92, 0x61, 0xCA, 0x90, 0x94, 0x89, - 0x68, 0xEE, 0x97, 0x38, 0x0D, 0xF9, 0x1F, 0x8E, - 0xE9, 0x26, 0xBD, 0xC9, 0xFF, 0x4C, 0x44, 0x1D, - 0x98, 0xE5, 0x86, 0xF3, 0x18, 0xB6, 0x09, 0xD2, - 0x7E, 0xC5, 0xE7, 0x2B, 0x8C, 0x8B, 0x60, 0x3F, - 0x2C, 0x6A, 0x08, 0x0E, 0x50, 0x32, 0x9F, 0xF0, - 0x9A, 0xC2, 0x39, 0xBE, 0xEA, 0x12, 0x16, 0xBB, - 0x5E, 0x67, 0xE3, 0xB8, 0x79, 0x46, 0xDA, 0x00, - 0xD3, 0xBC, 0xCE, 0x1C, 0x80, 0xFA, 0xAB, 0x65, - 0x4A, 0xF8, 0xAC, 0x72, 0x01, 0xC6, 0x35, 0x85, - 0x3E, 0x5C, 0xA1, 0x05, 0xA5, 0xA9, 0xE1, 0x40, - 0xEB, 0xE8, 0x5F, 0xF5, 0xC3, 0xD1, 0x34, 0xFB, - 0xEC, 0xF7, 0x9C, 0xC7, 0xDD, 0x6C, 0x36, 0x9D, - 0x42, 0x59, 0x99, 0x5D, 0xD8, 0x82, 0x07, 0x24, - 0x6D, 0xAD, 0x13, 0x48, 0x6B, 0x6E, 0x75, 0x4D, - 0xD5, 0x02, 0xED, 0xFE, 0x91, 0xCD, 0x77, 0xB0, - 0xF6, 0xC8, 0x6F, 0x23, 0xAF, 0xB7, 0x2D, 0xD6, - 0xA4, 0xE2, 0x45, 0x8F, 0x21, 0xE0, 0x49, 0x22, - 0x7B, 0x17, 0x0B, 0x0A, 0x41, 0x03, 0xD4, 0x4B }; - -static const unsigned char table_183[32] = { - 0x1E, 0x1B, 0x11, 0x07, 0x08, 0x06, 0x18, 0x17, - 0x0D, 0x0F, 0x12, 0x03, 0x1D, 0x04, 0x0A, 0x1A, - 0x0C, 0x13, 0x14, 0x1F, 0x0B, 0x19, 0x10, 0x01, - 0x16, 0x05, 0x1C, 0x0E, 0x02, 0x00, 0x09, 0x15 }; - -static const unsigned char table_184[32] = { - 0x0F, 0x1D, 0x17, 0x16, 0x0D, 0x05, 0x13, 0x1F, - 0x1B, 0x09, 0x1C, 0x1E, 0x15, 0x01, 0x06, 0x08, - 0x0C, 0x10, 0x0B, 0x02, 0x04, 0x0A, 0x07, 0x1A, - 0x18, 0x0E, 0x03, 0x11, 0x12, 0x14, 0x19, 0x00 }; - -static const unsigned char table_185[256] = { - 0xA5, 0xEE, 0x2E, 0x28, 0xA7, 0xAC, 0xD9, 0xB2, - 0x6E, 0x04, 0xB4, 0x03, 0xE8, 0x92, 0x5F, 0x4D, - 0x73, 0x20, 0x71, 0xE0, 0x43, 0x53, 0x3F, 0xF8, - 0x96, 0xA1, 0x24, 0x97, 0xAD, 0x7B, 0xE5, 0xE6, - 0xF2, 0xCE, 0xE3, 0x76, 0x2F, 0xA2, 0x48, 0x0E, - 0x4B, 0x4A, 0x8B, 0x5A, 0x81, 0x2C, 0xBF, 0xD7, - 0xFB, 0x7D, 0x4C, 0x16, 0xF4, 0x00, 0xF5, 0x40, - 0x64, 0x74, 0xA9, 0x37, 0x86, 0xD3, 0x1B, 0xCD, - 0xF1, 0x1A, 0x90, 0x9F, 0x54, 0x79, 0x29, 0xC3, - 0x77, 0x85, 0x02, 0xB1, 0x70, 0xFE, 0x5B, 0xDA, - 0x6B, 0x01, 0x0C, 0x07, 0xB8, 0x58, 0x47, 0x42, - 0x09, 0xE4, 0x27, 0xDD, 0xF3, 0x1E, 0x10, 0x9E, - 0x49, 0x30, 0x05, 0xBE, 0x59, 0xEB, 0xD2, 0xAA, - 0xC8, 0x9D, 0x8C, 0x5E, 0x14, 0x56, 0x8E, 0xF7, - 0x38, 0x55, 0x87, 0xA3, 0x5D, 0x41, 0x4F, 0x1F, - 0xF6, 0x0F, 0x57, 0x91, 0xAE, 0xBA, 0xB3, 0x95, - 0x9B, 0x69, 0xC1, 0x11, 0xD0, 0x25, 0x7F, 0x3B, - 0x62, 0xCF, 0xC0, 0xA0, 0xFC, 0xB6, 0x12, 0x6C, - 0xF0, 0x13, 0x93, 0xAB, 0xC6, 0x78, 0x6D, 0x88, - 0x22, 0x08, 0x2A, 0xE2, 0xB7, 0x65, 0x31, 0x3A, - 0xA6, 0x7C, 0xF9, 0xDC, 0xE7, 0xA4, 0xC9, 0x63, - 0xA8, 0x0B, 0xED, 0x50, 0x36, 0xD8, 0x3E, 0xB0, - 0x6A, 0x5C, 0x45, 0x4E, 0x23, 0x84, 0x34, 0x9A, - 0xCC, 0x3D, 0xB5, 0xEA, 0xDE, 0x75, 0xD6, 0xFF, - 0x6F, 0xC2, 0xDB, 0x8D, 0x7A, 0x1C, 0xE9, 0x61, - 0x0A, 0x1D, 0x32, 0x52, 0x3C, 0x19, 0xFA, 0xD1, - 0xD4, 0x68, 0xC7, 0x0D, 0x99, 0x83, 0xEF, 0x80, - 0x82, 0xBD, 0xD5, 0x7E, 0x39, 0x72, 0x51, 0xAF, - 0x8A, 0x2D, 0xB9, 0x89, 0xC4, 0x67, 0x35, 0xE1, - 0x44, 0x06, 0xEC, 0xCB, 0x8F, 0x17, 0xDF, 0x94, - 0x60, 0xCA, 0x26, 0xFD, 0x33, 0x46, 0x21, 0xBB, - 0x2B, 0xC5, 0x98, 0x18, 0x66, 0x15, 0x9C, 0xBC }; - -static const unsigned char table_186[256] = { - 0xB7, 0xFA, 0x03, 0x7C, 0x76, 0x43, 0xA7, 0x15, - 0x4B, 0x4F, 0x04, 0xAA, 0x4E, 0xD2, 0x52, 0xC8, - 0x79, 0x16, 0xF6, 0x61, 0x01, 0x5D, 0xD6, 0x47, - 0xDE, 0xC5, 0x4D, 0x2F, 0xF5, 0x29, 0x21, 0xE6, - 0x97, 0x35, 0xDC, 0x0E, 0x8B, 0xF4, 0x0F, 0xBE, - 0x30, 0x07, 0x1D, 0x46, 0x75, 0xCE, 0x56, 0x42, - 0x28, 0x93, 0x84, 0x20, 0xA5, 0xC2, 0x87, 0x45, - 0x1C, 0x6B, 0x55, 0x06, 0xEB, 0xB0, 0xF9, 0x14, - 0x23, 0xF1, 0xFC, 0xD7, 0x98, 0xD1, 0xA4, 0xED, - 0x5B, 0xB1, 0x12, 0x7A, 0xD5, 0x5F, 0x53, 0x88, - 0x95, 0x71, 0xE7, 0x5C, 0xF8, 0x83, 0xC7, 0x49, - 0xDD, 0xDA, 0x0B, 0xC1, 0x70, 0xEC, 0x67, 0xE2, - 0xEA, 0x72, 0x4C, 0x92, 0xA6, 0xE5, 0x59, 0xA9, - 0x3C, 0xFE, 0x0A, 0x65, 0x6E, 0xF3, 0xA3, 0x22, - 0x24, 0x81, 0xF2, 0xCC, 0xD3, 0xA0, 0xDF, 0xDB, - 0xAB, 0x09, 0x13, 0x96, 0x36, 0x9C, 0xEE, 0xD4, - 0x33, 0x5E, 0x26, 0xAE, 0x48, 0x38, 0xFF, 0x08, - 0x1F, 0x6D, 0x02, 0xEF, 0x7E, 0x57, 0x2A, 0x8A, - 0xBA, 0x90, 0xAF, 0xA8, 0x37, 0x8E, 0x9B, 0xC0, - 0x69, 0x32, 0x86, 0xBD, 0x73, 0x6C, 0xB9, 0x31, - 0x66, 0xBF, 0x1B, 0x44, 0x9E, 0xB2, 0xD0, 0xE0, - 0xF0, 0x2C, 0x3F, 0xE1, 0x91, 0x18, 0x19, 0x50, - 0xCA, 0x8F, 0x54, 0xB5, 0x8D, 0x0C, 0x17, 0x39, - 0x8C, 0x00, 0x7F, 0x41, 0xE3, 0x2E, 0x1A, 0x9D, - 0x27, 0xA1, 0x10, 0x34, 0x1E, 0x3A, 0x60, 0x77, - 0xBB, 0xB6, 0x0D, 0x4A, 0x3E, 0x6A, 0xB4, 0xA2, - 0xB3, 0xFD, 0xCD, 0x80, 0x51, 0xAD, 0xCF, 0xBC, - 0x40, 0x74, 0x6F, 0x68, 0x2B, 0xC3, 0xF7, 0x63, - 0xB8, 0x25, 0xC4, 0x62, 0xE9, 0xFB, 0x58, 0x85, - 0x78, 0xCB, 0x9A, 0x3D, 0xE4, 0xC9, 0x89, 0x2D, - 0x64, 0x82, 0xC6, 0x05, 0xD8, 0xAC, 0x99, 0x9F, - 0x11, 0x3B, 0x94, 0xE8, 0x7D, 0x7B, 0xD9, 0x5A }; - -static const unsigned char table_187[32] = { - 0x0F, 0x04, 0x1D, 0x1B, 0x15, 0x10, 0x01, 0x0B, - 0x00, 0x17, 0x13, 0x07, 0x1E, 0x1F, 0x08, 0x0A, - 0x19, 0x09, 0x05, 0x06, 0x0C, 0x1A, 0x14, 0x16, - 0x0E, 0x18, 0x03, 0x1C, 0x12, 0x11, 0x0D, 0x02 }; - -static const struct yahoo_fn yahoo_fntable[5][96] = - {{{ IDENT, 0, 0 }, - { IDENT, 0, 0 }, - { IDENT, 0, 0 }, - { IDENT, 0, 0 }, - { IDENT, 0, 0 }, - { IDENT, 0, 0 }, - { IDENT, 0, 0 }, - { IDENT, 0, 0 }, - { IDENT, 0, 0 }, - { IDENT, 0, 0 }, - { IDENT, 0, 0 }, - { IDENT, 0, 0 }, - { IDENT, 0, 0 }, - { IDENT, 0, 0 }, - { IDENT, 0, 0 }, - { IDENT, 0, 0 }, - { IDENT, 0, 0 }, - { IDENT, 0, 0 }, - { IDENT, 0, 0 }, - { IDENT, 0, 0 }, - { IDENT, 0, 0 }, - { IDENT, 0, 0 }, - { IDENT, 0, 0 }, - { IDENT, 0, 0 }, - { IDENT, 0, 0 }, - { IDENT, 0, 0 }, - { IDENT, 0, 0 }, - { IDENT, 0, 0 }, - { IDENT, 0, 0 }, - { IDENT, 0, 0 }, - { IDENT, 0, 0 }, - { IDENT, 0, 0 }, - { IDENT, 0, 0 }, - { IDENT, 0, 0 }, - { IDENT, 0, 0 }, - { IDENT, 0, 0 }, - { IDENT, 0, 0 }, - { IDENT, 0, 0 }, - { IDENT, 0, 0 }, - { IDENT, 0, 0 }, - { IDENT, 0, 0 }, - { IDENT, 0, 0 }, - { IDENT, 0, 0 }, - { IDENT, 0, 0 }, - { IDENT, 0, 0 }, - { IDENT, 0, 0 }, - { IDENT, 0, 0 }, - { IDENT, 0, 0 }, - { IDENT, 0, 0 }, - { IDENT, 0, 0 }, - { IDENT, 0, 0 }, - { IDENT, 0, 0 }, - { IDENT, 0, 0 }, - { IDENT, 0, 0 }, - { IDENT, 0, 0 }, - { IDENT, 0, 0 }, - { IDENT, 0, 0 }, - { IDENT, 0, 0 }, - { IDENT, 0, 0 }, - { IDENT, 0, 0 }, - { IDENT, 0, 0 }, - { IDENT, 0, 0 }, - { IDENT, 0, 0 }, - { IDENT, 0, 0 }, - { IDENT, 0, 0 }, - { IDENT, 0, 0 }, - { IDENT, 0, 0 }, - { IDENT, 0, 0 }, - { IDENT, 0, 0 }, - { IDENT, 0, 0 }, - { IDENT, 0, 0 }, - { IDENT, 0, 0 }, - { IDENT, 0, 0 }, - { IDENT, 0, 0 }, - { IDENT, 0, 0 }, - { IDENT, 0, 0 }, - { IDENT, 0, 0 }, - { IDENT, 0, 0 }, - { IDENT, 0, 0 }, - { IDENT, 0, 0 }, - { IDENT, 0, 0 }, - { IDENT, 0, 0 }, - { IDENT, 0, 0 }, - { IDENT, 0, 0 }, - { IDENT, 0, 0 }, - { IDENT, 0, 0 }, - { IDENT, 0, 0 }, - { IDENT, 0, 0 }, - { IDENT, 0, 0 }, - { IDENT, 0, 0 }, - { IDENT, 0, 0 }, - { IDENT, 0, 0 }, - { IDENT, 0, 0 }, - { IDENT, 0, 0 }, - { IDENT, 0, 0 }, - { IDENT, 0, 0 }}, - {{ MULADD, 0x36056CD7, 0x4387 }, - { LOOKUP, (long)table_0, 0 }, - { LOOKUP, (long)table_1, 0 }, - { BITFLD, (long)table_2, 0 }, - { LOOKUP, (long)table_3, 0 }, - { BITFLD, (long)table_4, 0 }, - { MULADD, 0x4ABB534D, 0x3769 }, - { XOR, 0x1D242DA5, 0 }, - { MULADD, 0x3C23132D, 0x339B }, - { XOR, 0x0191265C, 0 }, - { XOR, 0x3DB979DB, 0 }, - { LOOKUP, (long)table_5, 0 }, - { XOR, 0x1A550E1E, 0 }, - { XOR, 0x2F140A2D, 0 }, - { MULADD, 0x7C466A4B, 0x29BF }, - { XOR, 0x2D3F30D3, 0 }, - { MULADD, 0x7E823B21, 0x6BB3 }, - { BITFLD, (long)table_6, 0 }, - { LOOKUP, (long)table_7, 0 }, - { BITFLD, (long)table_8, 0 }, - { LOOKUP, (long)table_9, 0 }, - { BITFLD, (long)table_10, 0 }, - { LOOKUP, (long)table_11, 0 }, - { BITFLD, (long)table_12, 0 }, - { LOOKUP, (long)table_13, 0 }, - { BITFLD, (long)table_14, 0 }, - { MULADD, 0x5B756AB9, 0x7E9B }, - { LOOKUP, (long)table_15, 0 }, - { XOR, 0x1D1C4911, 0 }, - { LOOKUP, (long)table_16, 0 }, - { LOOKUP, (long)table_17, 0 }, - { XOR, 0x46BD7771, 0 }, - { XOR, 0x51AE2B42, 0 }, - { MULADD, 0x2417591B, 0x177B }, - { MULADD, 0x57F27C5F, 0x2433 }, - { LOOKUP, (long)table_18, 0 }, - { LOOKUP, (long)table_19, 0 }, - { XOR, 0x71422261, 0 }, - { BITFLD, (long)table_20, 0 }, - { MULADD, 0x58E937F9, 0x1075 }, - { LOOKUP, (long)table_21, 0 }, - { BITFLD, (long)table_22, 0 }, - { LOOKUP, (long)table_23, 0 }, - { LOOKUP, (long)table_24, 0 }, - { MULADD, 0x0B4C3D13, 0x1597 }, - { BITFLD, (long)table_25, 0 }, - { XOR, 0x0FE07D38, 0 }, - { MULADD, 0x689B4017, 0x3CFB }, - { BITFLD, (long)table_26, 0 }, - { LOOKUP, (long)table_27, 0 }, - { XOR, 0x35413DF3, 0 }, - { MULADD, 0x05B611AB, 0x570B }, - { MULADD, 0x0DA5334F, 0x3AC7 }, - { XOR, 0x47706008, 0 }, - { BITFLD, (long)table_28, 0 }, - { LOOKUP, (long)table_29, 0 }, - { BITFLD, (long)table_30, 0 }, - { XOR, 0x57611B36, 0 }, - { MULADD, 0x314C2CD1, 0x2B5B }, - { XOR, 0x1EF33946, 0 }, - { MULADD, 0x28EA041F, 0x638F }, - { LOOKUP, (long)table_31, 0 }, - { LOOKUP, (long)table_32, 0 }, - { LOOKUP, (long)table_33, 0 }, - { MULADD, 0x511537CB, 0x7135 }, - { MULADD, 0x1CF71007, 0x5E17 }, - { XOR, 0x583D4BCF, 0 }, - { LOOKUP, (long)table_34, 0 }, - { XOR, 0x373E6856, 0 }, - { MULADD, 0x4D595519, 0x1A7D }, - { LOOKUP, (long)table_35, 0 }, - { LOOKUP, (long)table_36, 0 }, - { XOR, 0x0E2A36A7, 0 }, - { LOOKUP, (long)table_37, 0 }, - { LOOKUP, (long)table_38, 0 }, - { BITFLD, (long)table_39, 0 }, - { BITFLD, (long)table_40, 0 }, - { XOR, 0x53F3604F, 0 }, - { BITFLD, (long)table_41, 0 }, - { BITFLD, (long)table_42, 0 }, - { MULADD, 0x1EDC0BA3, 0x7531 }, - { LOOKUP, (long)table_43, 0 }, - { XOR, 0x10DF1038, 0 }, - { BITFLD, (long)table_44, 0 }, - { LOOKUP, (long)table_45, 0 }, - { XOR, 0x4EDE0CAC, 0 }, - { MULADD, 0x2F076EEB, 0x5BCF }, - { XOR, 0x6D86030F, 0 }, - { XOR, 0x3F331713, 0 }, - { LOOKUP, (long)table_46, 0 }, - { MULADD, 0x41CD726F, 0x3F79 }, - { BITFLD, (long)table_47, 0 }, - { XOR, 0x0ECE0054, 0 }, - { MULADD, 0x19B32B03, 0x4AD1 }, - { BITFLD, (long)table_48, 0 }, - { BITFLD, (long)table_49, 0 }}, - {{ MULADD, 0x39731111, 0x419B }, - { XOR, 0x54F7757A, 0 }, - { BITFLD, (long)table_50, 0 }, - { BITFLD, (long)table_51, 0 }, - { LOOKUP, (long)table_52, 0 }, - { LOOKUP, (long)table_53, 0 }, - { MULADD, 0x3CC0256B, 0x7CE7 }, - { XOR, 0x79991847, 0 }, - { MULADD, 0x228F7FB5, 0x472D }, - { MULADD, 0x32DA290B, 0x7745 }, - { XOR, 0x7A28180D, 0 }, - { BITFLD, (long)table_54, 0 }, - { BITFLD, (long)table_55, 0 }, - { MULADD, 0x5C814F8B, 0x227F }, - { LOOKUP, (long)table_56, 0 }, - { MULADD, 0x0B496F6D, 0x412D }, - { XOR, 0x6F4B62DA, 0 }, - { LOOKUP, (long)table_57, 0 }, - { XOR, 0x64973977, 0 }, - { LOOKUP, (long)table_58, 0 }, - { LOOKUP, (long)table_59, 0 }, - { BITFLD, (long)table_60, 0 }, - { LOOKUP, (long)table_61, 0 }, - { LOOKUP, (long)table_62, 0 }, - { XOR, 0x6DD14C92, 0 }, - { LOOKUP, (long)table_63, 0 }, - { BITFLD, (long)table_64, 0 }, - { BITFLD, (long)table_65, 0 }, - { BITFLD, (long)table_66, 0 }, - { LOOKUP, (long)table_67, 0 }, - { XOR, 0x5E6324D8, 0 }, - { LOOKUP, (long)table_68, 0 }, - { LOOKUP, (long)table_69, 0 }, - { LOOKUP, (long)table_70, 0 }, - { BITFLD, (long)table_71, 0 }, - { XOR, 0x62745ED0, 0 }, - { MULADD, 0x102C215B, 0x0581 }, - { LOOKUP, (long)table_72, 0 }, - { LOOKUP, (long)table_73, 0 }, - { LOOKUP, (long)table_74, 0 }, - { MULADD, 0x19511111, 0x12C1 }, - { LOOKUP, (long)table_75, 0 }, - { MULADD, 0x2A6E2953, 0x6977 }, - { LOOKUP, (long)table_76, 0 }, - { XOR, 0x55CD5445, 0 }, - { BITFLD, (long)table_77, 0 }, - { BITFLD, (long)table_78, 0 }, - { MULADD, 0x646C21EB, 0x43E5 }, - { XOR, 0x71DC4898, 0 }, - { XOR, 0x167519CB, 0 }, - { XOR, 0x6D3158F8, 0 }, - { XOR, 0x7EA95BEA, 0 }, - { BITFLD, (long)table_79, 0 }, - { XOR, 0x47377587, 0 }, - { XOR, 0x2D8B6E8F, 0 }, - { MULADD, 0x5E6105DB, 0x1605 }, - { XOR, 0x65B543C8, 0 }, - { LOOKUP, (long)table_80, 0 }, - { BITFLD, (long)table_81, 0 }, - { MULADD, 0x48AF73CB, 0x0A67 }, - { XOR, 0x4FB96154, 0 }, - { LOOKUP, (long)table_82, 0 }, - { BITFLD, (long)table_83, 0 }, - { XOR, 0x622C4954, 0 }, - { BITFLD, (long)table_84, 0 }, - { XOR, 0x20D220F3, 0 }, - { XOR, 0x361D4F0D, 0 }, - { XOR, 0x2B2000D1, 0 }, - { XOR, 0x6FB8593E, 0 }, - { LOOKUP, (long)table_85, 0 }, - { BITFLD, (long)table_86, 0 }, - { XOR, 0x2B7F7DFC, 0 }, - { MULADD, 0x5FC41A57, 0x0693 }, - { MULADD, 0x17154387, 0x2489 }, - { BITFLD, (long)table_87, 0 }, - { BITFLD, (long)table_88, 0 }, - { BITFLD, (long)table_89, 0 }, - { LOOKUP, (long)table_90, 0 }, - { XOR, 0x7E221470, 0 }, - { XOR, 0x7A600061, 0 }, - { BITFLD, (long)table_91, 0 }, - { BITFLD, (long)table_92, 0 }, - { LOOKUP, (long)table_93, 0 }, - { BITFLD, (long)table_94, 0 }, - { MULADD, 0x00E813A5, 0x2CE5 }, - { MULADD, 0x3D707E25, 0x3827 }, - { MULADD, 0x77A53E07, 0x6A5F }, - { BITFLD, (long)table_95, 0 }, - { LOOKUP, (long)table_96, 0 }, - { LOOKUP, (long)table_97, 0 }, - { XOR, 0x43A73788, 0 }, - { LOOKUP, (long)table_98, 0 }, - { BITFLD, (long)table_99, 0 }, - { LOOKUP, (long)table_100, 0 }, - { XOR, 0x55F4606B, 0 }, - { BITFLD, (long)table_101, 0 }}, - {{ BITFLD, (long)table_102, 0 }, - { MULADD, 0x32CA58E3, 0x04F9 }, - { XOR, 0x11756B30, 0 }, - { MULADD, 0x218B2569, 0x5DB1 }, - { XOR, 0x77D64B90, 0 }, - { BITFLD, (long)table_103, 0 }, - { LOOKUP, (long)table_104, 0 }, - { MULADD, 0x7D1428CB, 0x3D }, - { XOR, 0x6F872C49, 0 }, - { XOR, 0x2E484655, 0 }, - { MULADD, 0x1E3349F7, 0x41F5 }, - { LOOKUP, (long)table_105, 0 }, - { BITFLD, (long)table_106, 0 }, - { XOR, 0x61640311, 0 }, - { BITFLD, (long)table_107, 0 }, - { LOOKUP, (long)table_108, 0 }, - { LOOKUP, (long)table_109, 0 }, - { LOOKUP, (long)table_110, 0 }, - { XOR, 0x007044D3, 0 }, - { BITFLD, (long)table_111, 0 }, - { MULADD, 0x5C221625, 0x576F }, - { LOOKUP, (long)table_112, 0 }, - { LOOKUP, (long)table_113, 0 }, - { XOR, 0x2D406BB1, 0 }, - { MULADD, 0x680B1F17, 0x12CD }, - { BITFLD, (long)table_114, 0 }, - { MULADD, 0x12564D55, 0x32B9 }, - { MULADD, 0x21A67897, 0x6BAB }, - { LOOKUP, (long)table_115, 0 }, - { MULADD, 0x06405119, 0x7143 }, - { XOR, 0x351D01ED, 0 }, - { MULADD, 0x46356F6B, 0x0A49 }, - { MULADD, 0x32C77969, 0x72F3 }, - { BITFLD, (long)table_116, 0 }, - { LOOKUP, (long)table_117, 0 }, - { LOOKUP, (long)table_118, 0 }, - { BITFLD, (long)table_119, 0 }, - { LOOKUP, (long)table_120, 0 }, - { BITFLD, (long)table_121, 0 }, - { MULADD, 0x74D52C55, 0x5F43 }, - { XOR, 0x26201CA8, 0 }, - { XOR, 0x7AEB3255, 0 }, - { LOOKUP, (long)table_122, 0 }, - { MULADD, 0x578F1047, 0x640B }, - { LOOKUP, (long)table_123, 0 }, - { LOOKUP, (long)table_124, 0 }, - { BITFLD, (long)table_125, 0 }, - { BITFLD, (long)table_126, 0 }, - { XOR, 0x4A1352CF, 0 }, - { MULADD, 0x4BFB6EF3, 0x704F }, - { MULADD, 0x1B4C7FE7, 0x5637 }, - { MULADD, 0x04091A3B, 0x4917 }, - { XOR, 0x270C2F52, 0 }, - { LOOKUP, (long)table_127, 0 }, - { BITFLD, (long)table_128, 0 }, - { LOOKUP, (long)table_129, 0 }, - { BITFLD, (long)table_130, 0 }, - { MULADD, 0x127549D5, 0x579B }, - { MULADD, 0x0AB54121, 0x7A47 }, - { BITFLD, (long)table_131, 0 }, - { XOR, 0x751E6E49, 0 }, - { LOOKUP, (long)table_132, 0 }, - { LOOKUP, (long)table_133, 0 }, - { XOR, 0x670C3F74, 0 }, - { MULADD, 0x6B080851, 0x7E8B }, - { XOR, 0x71CD789E, 0 }, - { XOR, 0x3EB20B7B, 0 }, - { BITFLD, (long)table_134, 0 }, - { LOOKUP, (long)table_135, 0 }, - { MULADD, 0x58A67753, 0x272B }, - { MULADD, 0x1AB54AD7, 0x4D33 }, - { MULADD, 0x07D30A45, 0x0569 }, - { MULADD, 0x737616BF, 0x70C7 }, - { LOOKUP, (long)table_136, 0 }, - { MULADD, 0x45C4485D, 0x2063 }, - { BITFLD, (long)table_137, 0 }, - { XOR, 0x2598043D, 0 }, - { MULADD, 0x223A4FE3, 0x49A7 }, - { XOR, 0x1EED619F, 0 }, - { BITFLD, (long)table_138, 0 }, - { XOR, 0x6F477561, 0 }, - { BITFLD, (long)table_139, 0 }, - { BITFLD, (long)table_140, 0 }, - { LOOKUP, (long)table_141, 0 }, - { MULADD, 0x4BC13C4F, 0x45C1 }, - { XOR, 0x3B547BFB, 0 }, - { LOOKUP, (long)table_142, 0 }, - { MULADD, 0x71406AB3, 0x7A5F }, - { XOR, 0x2F1467E9, 0 }, - { MULADD, 0x009366D1, 0x22D1 }, - { MULADD, 0x587D1B75, 0x2CA5 }, - { MULADD, 0x213A4BE7, 0x4499 }, - { MULADD, 0x62653E89, 0x2D5D }, - { BITFLD, (long)table_143, 0 }, - { MULADD, 0x4F5F3257, 0x444F }, - { MULADD, 0x4C0E2B2B, 0x19D3 }}, - {{ MULADD, 0x3F867B35, 0x7B3B }, - { MULADD, 0x32D25CB1, 0x3D6D }, - { BITFLD, (long)table_144, 0 }, - { MULADD, 0x50FA1C51, 0x5F4F }, - { LOOKUP, (long)table_145, 0 }, - { XOR, 0x05FE7AF1, 0 }, - { MULADD, 0x14067C29, 0x10C5 }, - { LOOKUP, (long)table_146, 0 }, - { MULADD, 0x4A5558C5, 0x271F }, - { XOR, 0x3C0861B1, 0 }, - { BITFLD, (long)table_147, 0 }, - { LOOKUP, (long)table_148, 0 }, - { MULADD, 0x18837C9D, 0x6335 }, - { BITFLD, (long)table_149, 0 }, - { XOR, 0x7DAB5033, 0 }, - { LOOKUP, (long)table_150, 0 }, - { MULADD, 0x03B87321, 0x7225 }, - { XOR, 0x7F906745, 0 }, - { LOOKUP, (long)table_151, 0 }, - { BITFLD, (long)table_152, 0 }, - { XOR, 0x21C46C2C, 0 }, - { MULADD, 0x2B36757D, 0x028D }, - { BITFLD, (long)table_153, 0 }, - { LOOKUP, (long)table_154, 0 }, - { XOR, 0x106B4A85, 0 }, - { XOR, 0x17640F11, 0 }, - { LOOKUP, (long)table_155, 0 }, - { XOR, 0x69E60486, 0 }, - { LOOKUP, (long)table_156, 0 }, - { MULADD, 0x3782017D, 0x05BF }, - { BITFLD, (long)table_157, 0 }, - { LOOKUP, (long)table_158, 0 }, - { XOR, 0x6BCA53B0, 0 }, - { LOOKUP, (long)table_159, 0 }, - { LOOKUP, (long)table_160, 0 }, - { LOOKUP, (long)table_161, 0 }, - { LOOKUP, (long)table_162, 0 }, - { XOR, 0x0B8236E3, 0 }, - { BITFLD, (long)table_163, 0 }, - { MULADD, 0x5EE51C43, 0x4553 }, - { BITFLD, (long)table_164, 0 }, - { LOOKUP, (long)table_165, 0 }, - { LOOKUP, (long)table_166, 0 }, - { LOOKUP, (long)table_167, 0 }, - { MULADD, 0x42B14C6F, 0x5531 }, - { XOR, 0x4A2548E8, 0 }, - { MULADD, 0x5C071D85, 0x2437 }, - { LOOKUP, (long)table_168, 0 }, - { MULADD, 0x29195861, 0x108B }, - { XOR, 0x24012258, 0 }, - { LOOKUP, (long)table_169, 0 }, - { XOR, 0x63CC2377, 0 }, - { XOR, 0x08D04B59, 0 }, - { MULADD, 0x3FD30CF5, 0x7027 }, - { XOR, 0x7C3E0478, 0 }, - { MULADD, 0x457776B7, 0x24B3 }, - { XOR, 0x086652BC, 0 }, - { MULADD, 0x302F5B13, 0x371D }, - { LOOKUP, (long)table_170, 0 }, - { MULADD, 0x58692D47, 0x0671 }, - { XOR, 0x6601178E, 0 }, - { MULADD, 0x0F195B9B, 0x1369 }, - { XOR, 0x07BA21D8, 0 }, - { BITFLD, (long)table_171, 0 }, - { BITFLD, (long)table_172, 0 }, - { XOR, 0x13AC3D21, 0 }, - { MULADD, 0x5BCF3275, 0x6E1B }, - { MULADD, 0x62725C5B, 0x16B9 }, - { MULADD, 0x5B950FDF, 0x2D35 }, - { BITFLD, (long)table_173, 0 }, - { BITFLD, (long)table_174, 0 }, - { MULADD, 0x73BA5335, 0x1C13 }, - { BITFLD, (long)table_175, 0 }, - { BITFLD, (long)table_176, 0 }, - { XOR, 0x3E144154, 0 }, - { MULADD, 0x4EED7B27, 0x38AB }, - { LOOKUP, (long)table_177, 0 }, - { MULADD, 0x627C7E0F, 0x7F01 }, - { MULADD, 0x5D7E1F73, 0x2C0F }, - { LOOKUP, (long)table_178, 0 }, - { MULADD, 0x55C9525F, 0x4659 }, - { XOR, 0x3765334C, 0 }, - { MULADD, 0x5DF66DDF, 0x7C25 }, - { LOOKUP, (long)table_179, 0 }, - { LOOKUP, (long)table_180, 0 }, - { XOR, 0x16AE5776, 0 }, - { LOOKUP, (long)table_181, 0 }, - { LOOKUP, (long)table_182, 0 }, - { BITFLD, (long)table_183, 0 }, - { BITFLD, (long)table_184, 0 }, - { LOOKUP, (long)table_185, 0 }, - { MULADD, 0x4392327B, 0x7E0D }, - { LOOKUP, (long)table_186, 0 }, - { MULADD, 0x3D8B0CB5, 0x640D }, - { MULADD, 0x32865601, 0x4D43 }, - { BITFLD, (long)table_187, 0 }}}; - -#define A( x ) (( x ) & 0xFF ) -#define B( x ) (( x ) >> 8 & 0xFF ) -#define C( x ) (( x ) >> 16 & 0xFF ) -#define D( x ) (( x ) >> 24 & 0xFF ) - -int yahoo_xfrm( int table, int depth, int seed ) -{ - const struct yahoo_fn *xfrm; - int i, j, z; - unsigned int n = seed; - unsigned char *arg; - - for( i = 0; i < depth; i++ ) - { - xfrm = &yahoo_fntable[table][n % 96]; - switch( xfrm->type ) - { - case IDENT: - return seed; - case XOR: - seed ^= xfrm->arg1; - break; - case MULADD: - seed = seed * xfrm->arg1 + xfrm->arg2; - break; - case LOOKUP: - arg = (unsigned char *)xfrm->arg1; - seed = arg[A( seed )] | arg[B( seed )] << 8 | arg[C( seed )] << 16 - | arg[D( seed )] << 24; - break; - case BITFLD: - arg = (unsigned char *)xfrm->arg1; - for( j = 0, z = 0; j < 32; j++ ) - z = ((( seed >> j ) & 1 ) << arg[j] ) | ( ~( 1 << arg[j] ) & z ); - seed = z; - break; - } - if( depth - i == 1 ) - return seed; - z = (((((( A( seed ) * 0x9E3779B1 ) ^ B( seed )) * 0x9E3779B1 ) - ^ C( seed )) * 0x9E3779B1 ) ^ D( seed )) * 0x9E3779B1; - n = (((( z ^ ( z >> 8 )) >> 16 ) ^ z ) ^ ( z >> 8 )) & 0xFF; - seed *= 0x00010DCD; - } - return seed; -} diff --git a/protocols/yahoo/yahoo_fn.h b/protocols/yahoo/yahoo_fn.h deleted file mode 100644 index 5400e5d0..00000000 --- a/protocols/yahoo/yahoo_fn.h +++ /dev/null @@ -1,32 +0,0 @@ -/* - * libyahoo2 - originally from gaim patches by Amatus - * - * Copyright (C) 2003-2004 - * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 2 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program; if not, write to the Free Software - * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA - */ - -#define IDENT 1 /* identify function */ -#define XOR 2 /* xor with arg1 */ -#define MULADD 3 /* multipy by arg1 then add arg2 */ -#define LOOKUP 4 /* lookup each byte in the table pointed to by arg1 */ -#define BITFLD 5 /* reorder bits according to table pointed to by arg1 */ - -struct yahoo_fn { - int type; - long arg1, arg2; -}; - -int yahoo_xfrm(int table, int depth, int seed); diff --git a/protocols/yahoo/yahoo_httplib.c b/protocols/yahoo/yahoo_httplib.c index 6bb8923d..fd63d507 100644 --- a/protocols/yahoo/yahoo_httplib.c +++ b/protocols/yahoo/yahoo_httplib.c @@ -61,6 +61,7 @@ extern struct yahoo_callbacks *yc; extern enum yahoo_log_level log_level; +#if 0 int yahoo_tcp_readline(char *ptr, int maxlen, void *fd) { int n, rc; @@ -92,6 +93,7 @@ int yahoo_tcp_readline(char *ptr, int maxlen, void *fd) *ptr = 0; return (n); } +#endif static int url_to_host_port_path(const char *url, char *host, int *port, char *path, int *ssl) @@ -182,6 +184,7 @@ char *yahoo_urlencode(const char *instr) return (str); } +#if 0 char *yahoo_urldecode(const char *instr) { int ipos = 0, bpos = 0; @@ -278,6 +281,7 @@ char *yahoo_xmldecode(const char *instr) return (str); } +#endif typedef void (*http_connected) (int id, void *fd, int error); |