From 52411436aaf6515a30862d038b50dfe4e6f84951 Mon Sep 17 00:00:00 2001 From: smurph Date: Tue, 4 Apr 2000 03:48:46 +0000 Subject: [PATCH] Import tagging code and try to resolve locking problem. --- sys/dev/ic/aic7xxx.c | 135 ++++- sys/dev/ic/aic7xxxreg.h | 2 + sys/dev/microcode/aic7xxx/aic7xxx.reg | 2 + sys/dev/microcode/aic7xxx/aic7xxx.seq | 9 +- sys/dev/microcode/aic7xxx/aic7xxx_seq.h | 747 ++++++++++++------------ 5 files changed, 502 insertions(+), 393 deletions(-) diff --git a/sys/dev/ic/aic7xxx.c b/sys/dev/ic/aic7xxx.c index 782a7a2e61d..5c4a961663d 100644 --- a/sys/dev/ic/aic7xxx.c +++ b/sys/dev/ic/aic7xxx.c @@ -33,7 +33,7 @@ * SUCH DAMAGE. * * $FreeBSD: src/sys/dev/aic7xxx/aic7xxx.c,v 1.40 2000/01/07 23:08:17 gibbs Exp $ - * $OpenBSD: aic7xxx.c,v 1.19 2000/03/22 02:48:47 smurph Exp $ + * $OpenBSD: aic7xxx.c,v 1.20 2000/04/04 03:48:47 smurph Exp $ */ /* * A few notes on features of the driver. @@ -323,6 +323,10 @@ STATIC void ahc_set_width __P((struct ahc_softc *ahc, u_int width, u_int type, int paused, int done)); STATIC void ahc_set_tags __P((struct ahc_softc *ahc, struct ahc_devinfo *devinfo,int enable)); +STATIC int ahc_istagged_device __P((struct ahc_softc *ahc, + struct scsi_xfer *xs)); +STATIC void ahc_check_tags __P((struct ahc_softc *ahc, + struct scsi_xfer *xs)); STATIC void ahc_construct_sdtr __P((struct ahc_softc *ahc, u_int period, u_int offset)); STATIC void ahc_construct_wdtr __P((struct ahc_softc *ahc, u_int bus_width)); @@ -619,6 +623,12 @@ ahcfreescb(ahc, scb) int opri; hscb = scb->hscb; + +#ifdef AHC_DEBUG + if (ahc_debug & AHC_SHOWSCBALLOC) + printf("%s: free SCB tag %x\n", ahc_name(ahc), hscb->tag); +#endif + opri = splbio(); if ((ahc->flags & AHC_RESOURCE_SHORTAGE) != 0 || @@ -633,6 +643,7 @@ ahcfreescb(ahc, scb) hscb->status = 0; SLIST_INSERT_HEAD(&ahc->scb_data->free_scbs, scb, links); + splx(opri); } @@ -675,7 +686,7 @@ ahc_createdmamem(ahc, size, mapp, vaddr, baddr, seg, nseg, what) int *nseg; const char *what; { - int error, rseg, level = 0; + int error, level = 0; int dma_flags = BUS_DMA_NOWAIT; bus_dma_tag_t tag = ahc->sc_dmat; const char *myname = ahc_name(ahc); @@ -713,12 +724,7 @@ ahc_createdmamem(ahc, size, mapp, vaddr, baddr, seg, nseg, what) goto out; } - *baddr = seg[0].ds_addr; - - if (bootverbose) - printf("%s: dmamem for %s at phys %lx virt %lx nseg %d size %d\n", - myname, what, (unsigned long)*baddr, - (unsigned long)*vaddr, *nseg, size); + *baddr = (*mapp)->dm_segs[0].ds_addr; return 0; out: switch (level) { @@ -729,7 +735,7 @@ out: bus_dmamem_unmap(tag, *vaddr, size); /* FALLTHROUGH */ case 1: - bus_dmamem_free(tag, seg, rseg); + bus_dmamem_free(tag, seg, *nseg); break; default: break; @@ -821,8 +827,8 @@ static const int num_phases = (sizeof(phase_table)/sizeof(phase_table[0])) - 1; */ #define AHC_SYNCRATE_DT 0 #define AHC_SYNCRATE_ULTRA2 1 -#define AHC_SYNCRATE_ULTRA 2 -#define AHC_SYNCRATE_FAST 5 +#define AHC_SYNCRATE_ULTRA 3 +#define AHC_SYNCRATE_FAST 6 static struct ahc_syncrate ahc_syncrates[] = { /* ultra2 fast/ultra period rate */ { 0x42, 0x000, 9, "80.0" }, @@ -1505,7 +1511,7 @@ ahc_attach(ahc) ahc->sc_link.adapter_buswidth = 16; } -/* + /* * ask the adapter what subunits are present */ if ((ahc->flags & AHC_CHANNEL_B_PRIMARY) == 0) { @@ -2026,12 +2032,12 @@ ahc_handle_seqint(ahc, intstat) /* XXX Ever executed??? */ ahc_setup_target_msgin(ahc, &devinfo); } - } + } /* Pass a NULL path so that handlers generate their own */ ahc_handle_message_phase(ahc, /*path*/NULL); break; - } + } case PERR_DETECTED: { /* @@ -2352,6 +2358,7 @@ ahc_handle_scsiint(ahc, intstat) SCB_LUN(scb), tag, ROLE_INITIATOR, XS_DRIVER_STUFFUP); + sc_print_addr(scb->xs->sc_link); } else { /* * We had not fully identified this connection, @@ -3415,7 +3422,7 @@ ahc_done(ahc, scb) target = sc_link->target; if (xs->datalen) { - int op; + bus_dmasync_op_t op; if ((xs->flags & SCSI_DATA_IN) != 0) op = BUS_DMASYNC_POSTREAD; @@ -3510,6 +3517,7 @@ ahc_done(ahc, scb) splx(s); } else { xs->flags |= ITSDONE; + ahc_check_tags(ahc, xs); scsi_done(xs); } @@ -3639,6 +3647,9 @@ ahc_init(ahc) for (i = 0; i < 256; i++) ahc->qoutfifo[i] = SCB_LIST_NULL; + bus_dmamap_sync(ahc->sc_dmat, ahc->shared_data_dmamap, + BUS_DMASYNC_PREREAD|BUS_DMASYNC_PREWRITE); + /* * Allocate a tstate to house information for our * initiator presence on the bus as well as the user @@ -4080,6 +4091,9 @@ ahc_scsi_cmd(xs) goto get_scb; } + /* determine safety of software queueing */ + dontqueue = xs->flags & SCSI_POLL; + /* * If no new requests are accepted, just insert into the * private queue to wait for our turn. @@ -4088,7 +4102,8 @@ ahc_scsi_cmd(xs) if (ahc->queue_blocked || ahc->devqueue_blocked[xs->sc_link->target] || - ahc_index_busy_tcl(ahc, tcl, FALSE) != SCB_LIST_NULL) { + (!ahc_istagged_device(ahc, xs) && + ahc_index_busy_tcl(ahc, tcl, FALSE) != SCB_LIST_NULL)) { if (dontqueue) { splx(s); xs->error = XS_DRIVER_STUFFUP; @@ -4171,7 +4186,10 @@ get_scb: hscb = scb->hscb; hscb->tcl = tcl; - ahc_busy_tcl(ahc, scb); + if (ahc_istagged_device(ahc, xs)) + scb->hscb->control |= MSG_SIMPLE_Q_TAG; + else + ahc_busy_tcl(ahc, scb); splx(s); @@ -4271,7 +4289,8 @@ ahc_execute_scb(arg, dm_segs, nsegments) * be aborted. */ if (xs->flags & ITSDONE) { - ahc_index_busy_tcl(ahc, scb->hscb->tcl, TRUE); + if (!ahc_istagged_device(ahc, xs)) + ahc_index_busy_tcl(ahc, scb->hscb->tcl, TRUE); if (nsegments != 0) bus_dmamap_unload(ahc->sc_dmat, scb->dmamap); ahcfreescb(ahc, scb); @@ -4322,6 +4341,7 @@ ahc_execute_scb(arg, dm_segs, nsegments) #ifdef AHC_DEBUG if (ahc_debug & AHC_SHOWCMDS) { + sc_print_addr(xs->sc_link); printf("opcode %d tag %x len %d flags %x control %x fpos %u" " rate %x\n", xs->cmdstore.opcode, scb->hscb->tag, scb->hscb->datalen, @@ -4395,7 +4415,8 @@ ahc_setup_data(ahc, xs, scb) (xs->flags & SCSI_NOSLEEP) ? BUS_DMA_NOWAIT : BUS_DMA_WAITOK); if (error) { - ahc_index_busy_tcl(ahc, hscb->tcl, TRUE); + if (!ahc_istagged_device(ahc, xs)) + ahc_index_busy_tcl(ahc, hscb->tcl, TRUE); return (TRY_AGAIN_LATER); /* XXX fvdl */ } error = ahc_execute_scb(scb, @@ -4923,6 +4944,7 @@ bus_reset: printf("BDR message in message buffer\n"); active_scb->flags |= SCB_DEVICE_RESET; timeout(ahc_timeout, (caddr_t)active_scb, 2 * hz); + unpause_sequencer(ahc); } else { int disconnected; @@ -4998,6 +5020,11 @@ bus_reset: printf("Queuing a BDR SCB\n"); ahc->qinfifo[ahc->qinfifonext++] = scb->hscb->tag; + + bus_dmamap_sync(ahc->sc_dmat, + ahc->shared_data_dmamap, + BUS_DMASYNC_PREWRITE); + if ((ahc->features & AHC_QUEUE_REGS) != 0) { ahc_outb(ahc, HNSCB_QOFF, ahc->qinfifonext); @@ -5740,3 +5767,73 @@ ahc_shutdown(void *arg) for (i = TARG_SCSIRATE; i < HA_274_BIOSCTRL; i++) ahc_outb(ahc, i, 0); } + +STATIC void +ahc_check_tags(ahc, xs) +struct ahc_softc *ahc; +struct scsi_xfer *xs; +{ + struct scsi_inquiry_data *inq; + struct ahc_devinfo devinfo; + int target_id, our_id; + + if (xs->cmd->opcode != INQUIRY || xs->error != XS_NOERROR) + return; + + target_id = xs->sc_link->target; + our_id = SIM_SCSI_ID(ahc, xs->sc_link); + + /* + * Sneak a look at the results of the SCSI Inquiry + * command and see if we can do Tagged queing. This + * should really be done by the higher level drivers. + */ + inq = (struct scsi_inquiry_data *)xs->data; + if ((inq->flags & SID_CmdQue) && !(ahc_istagged_device(ahc, xs))) { +#ifdef AHC_DEBUG + printf("%s: target %d using tagged queuing\n", + ahc_name(ahc), xs->sc_link->target); +#endif + ahc_compile_devinfo(&devinfo, + our_id, target_id, xs->sc_link->lun, + SIM_CHANNEL(ahc, xs->sc_link), ROLE_INITIATOR); + ahc_set_tags(ahc, &devinfo, TRUE); + + if (ahc->scb_data->maxhscbs >= 16 || + (ahc->flags & AHC_PAGESCBS)) { + /* Default to 16 tags */ + xs->sc_link->openings += 14; + } else { + /* + * Default to 4 tags on whimpy + * cards that don't have much SCB + * space and can't page. This prevents + * a single device from hogging all + * slots. We should really have a better + * way of providing fairness. + */ + xs->sc_link->openings += 2; + } + } +} + +STATIC int +ahc_istagged_device(ahc, xs) +struct ahc_softc *ahc; +struct scsi_xfer *xs; +{ + char channel; + u_int our_id, target; + struct tmode_tstate *tstate; + struct ahc_devinfo devinfo; + + channel = SIM_CHANNEL(ahc, xs->sc_link); + our_id = SIM_SCSI_ID(ahc, xs->sc_link); + target = xs->sc_link->target; + (void)ahc_fetch_transinfo(ahc, channel, our_id, target, &tstate); + + ahc_compile_devinfo(&devinfo, our_id, target, + xs->sc_link->lun, channel, ROLE_INITIATOR); + + return (tstate->tagenable & devinfo.target_mask); +} diff --git a/sys/dev/ic/aic7xxxreg.h b/sys/dev/ic/aic7xxxreg.h index 7dde5ddf13f..36ae18f9d06 100644 --- a/sys/dev/ic/aic7xxxreg.h +++ b/sys/dev/ic/aic7xxxreg.h @@ -399,6 +399,8 @@ #define HS_MAILBOX 0x86 #define HOST_MAILBOX 0xf0 +#define HOST_TQINPOS 0x80 +#define HOST_REQ_INT 0x10 #define SEQ_MAILBOX 0x0f #define DSPCISTATUS 0x86 diff --git a/sys/dev/microcode/aic7xxx/aic7xxx.reg b/sys/dev/microcode/aic7xxx/aic7xxx.reg index e85bfc7943e..bb52bdba889 100644 --- a/sys/dev/microcode/aic7xxx/aic7xxx.reg +++ b/sys/dev/microcode/aic7xxx/aic7xxx.reg @@ -706,6 +706,8 @@ register HS_MAILBOX { address 0x086 mask HOST_MAILBOX 0xF0 mask SEQ_MAILBOX 0x0F + mask HOST_REQ_INT 0x10 + mask HOST_TQINPOS 0x80 /* Boundary at either 0 or 128 */ } const HOST_MAILBOX_SHIFT 4 diff --git a/sys/dev/microcode/aic7xxx/aic7xxx.seq b/sys/dev/microcode/aic7xxx/aic7xxx.seq index 6f5210b2497..152194f9815 100644 --- a/sys/dev/microcode/aic7xxx/aic7xxx.seq +++ b/sys/dev/microcode/aic7xxx/aic7xxx.seq @@ -78,7 +78,7 @@ poll_for_work_loop: and SEQCTL, ~PAUSEDIS; } test SSTAT0, SELDO|SELDI jnz selection; - test SCSISEQ, ENSELO jnz poll_for_work; + test SCSISEQ, ENSELO jnz poll_for_work_loop; if ((ahc->features & AHC_TWIN) != 0) { /* * Twin channel devices cannot handle things like SELTO @@ -359,7 +359,11 @@ host_target_message_loop: ident_messages_done: /* If ring buffer is full, return busy or queue full */ + if ((ahc->features & AHC_HS_MAILBOX) != 0) { + and A, HOST_TQINPOS, HS_MAILBOX; + } else { mov A, KERNEL_TQINPOS; + } cmp TQINPOS, A jne tqinfifo_has_space; mvi P_STATUS|BSYO call change_phase; cmp INITIATOR_TAG, SCB_LIST_NULL je . + 3; @@ -427,7 +431,8 @@ initiator_reselect: */ select_out: /* Turn off the selection hardware */ - and SCSISEQ, ENSELI|ENRSELI|ENAUTOATNP,SCSISEQ_TEMPLATE; + and SCSISEQ, TEMODE|ENSELI|ENRSELI|ENAUTOATNP, SCSISEQ; +/*and SCSISEQ, ENSELI|ENRSELI|ENAUTOATNP,SCSISEQ_TEMPLATE;*/ mvi CLRSINT0, CLRSELDO; mov SCBPTR, WAITING_SCBH; mov WAITING_SCBH,SCB_NEXT; diff --git a/sys/dev/microcode/aic7xxx/aic7xxx_seq.h b/sys/dev/microcode/aic7xxx/aic7xxx_seq.h index b4ac8f152bc..9a1bde59aff 100644 --- a/sys/dev/microcode/aic7xxx/aic7xxx_seq.h +++ b/sys/dev/microcode/aic7xxx/aic7xxx_seq.h @@ -8,12 +8,12 @@ static u_int8_t seqprog[] = { 0x32, 0x58, 0x00, 0x08, 0xff, 0x6a, 0xd6, 0x09, 0xff, 0x6a, 0xdc, 0x09, - 0x00, 0x65, 0xea, 0x59, + 0x00, 0x65, 0xec, 0x59, 0xf7, 0x01, 0x02, 0x08, 0xff, 0x4e, 0xc8, 0x08, 0xbf, 0x60, 0xc0, 0x08, 0x60, 0x0b, 0x7c, 0x68, - 0x40, 0x00, 0x0c, 0x68, + 0x40, 0x00, 0x12, 0x68, 0x08, 0x1f, 0x3e, 0x10, 0x60, 0x0b, 0x7c, 0x68, 0x40, 0x00, 0x0c, 0x68, @@ -26,12 +26,12 @@ static u_int8_t seqprog[] = { 0x00, 0x4d, 0x12, 0x70, 0x01, 0x4e, 0x9c, 0x18, 0xbf, 0x60, 0xc0, 0x08, - 0x00, 0x6a, 0x8e, 0x5d, + 0x00, 0x6a, 0x90, 0x5d, 0xff, 0x4e, 0xc8, 0x18, - 0x01, 0x6a, 0x9a, 0x5c, + 0x01, 0x6a, 0x9c, 0x5c, 0xff, 0x53, 0x20, 0x09, 0x0d, 0x6a, 0x6a, 0x00, - 0x00, 0x53, 0x18, 0x5d, + 0x00, 0x53, 0x1a, 0x5d, 0x03, 0xb0, 0x52, 0x31, 0xff, 0xb0, 0x52, 0x09, 0xff, 0xb1, 0x54, 0x09, @@ -64,18 +64,18 @@ static u_int8_t seqprog[] = { 0x20, 0x01, 0x02, 0x00, 0x02, 0xbb, 0x08, 0x34, 0xff, 0xbb, 0x08, 0x0c, - 0x40, 0x0b, 0x0e, 0x69, + 0x40, 0x0b, 0x10, 0x69, 0x20, 0x6a, 0x16, 0x00, - 0x80, 0x0b, 0x00, 0x79, + 0x80, 0x0b, 0x02, 0x79, 0xa4, 0x6a, 0x06, 0x00, 0x08, 0x6a, 0x18, 0x00, 0x08, 0x36, 0x6c, 0x00, 0xff, 0x51, 0xc8, 0x08, 0xe0, 0x6a, 0xcc, 0x00, - 0x49, 0x6a, 0x02, 0x5d, + 0x49, 0x6a, 0x04, 0x5d, 0x01, 0x6a, 0xdc, 0x01, 0x88, 0x6a, 0xcc, 0x00, - 0x49, 0x6a, 0x02, 0x5d, + 0x49, 0x6a, 0x04, 0x5d, 0x01, 0x6a, 0x26, 0x01, 0xf0, 0x19, 0x6e, 0x08, 0xff, 0x37, 0xd8, 0x09, @@ -87,135 +87,136 @@ static u_int8_t seqprog[] = { 0x0f, 0x0f, 0x32, 0x09, 0x0f, 0x05, 0x32, 0x09, 0xff, 0x6a, 0xb4, 0x00, - 0x10, 0x03, 0x54, 0x79, - 0x00, 0x65, 0xf8, 0x58, + 0x10, 0x03, 0x56, 0x79, + 0x00, 0x65, 0xfa, 0x58, 0x80, 0x66, 0xd4, 0x78, 0xff, 0x66, 0xd8, 0x09, 0xff, 0x66, 0x32, 0x09, 0x40, 0x66, 0xb8, 0x68, 0x01, 0x36, 0x6c, 0x00, 0x10, 0x03, 0xde, 0x78, - 0x00, 0x65, 0xf8, 0x58, + 0x00, 0x65, 0xfa, 0x58, 0xe0, 0x66, 0xc8, 0x18, 0x00, 0x65, 0xde, 0x50, 0xdd, 0x66, 0xc8, 0x18, 0x00, 0x65, 0xde, 0x48, 0xff, 0x66, 0xd8, 0x09, 0xff, 0x66, 0x32, 0x09, - 0x10, 0x03, 0x54, 0x79, - 0x00, 0x65, 0xf8, 0x58, + 0x10, 0x03, 0x56, 0x79, + 0x00, 0x65, 0xfa, 0x58, 0xff, 0x66, 0xd8, 0x09, 0xff, 0x66, 0x32, 0x09, 0xff, 0x66, 0xb4, 0x08, 0x00, 0x65, 0xde, 0x40, 0xa1, 0x6a, 0x22, 0x01, 0xff, 0x6a, 0xd4, 0x08, - 0x08, 0x52, 0x2c, 0x71, + 0x08, 0x52, 0x2e, 0x71, 0x02, 0x0b, 0xda, 0x78, 0x00, 0x65, 0xd4, 0x40, + 0x80, 0x86, 0xc8, 0x08, 0xff, 0x50, 0xc8, 0x08, - 0x00, 0x51, 0xee, 0x60, - 0xc4, 0x6a, 0x1c, 0x5c, - 0xff, 0x5a, 0xea, 0x70, - 0x28, 0x6a, 0x32, 0x5c, - 0x00, 0x65, 0x52, 0x41, - 0x08, 0x6a, 0x32, 0x5c, - 0x00, 0x65, 0x52, 0x41, + 0x00, 0x51, 0xf0, 0x60, + 0xc4, 0x6a, 0x1e, 0x5c, + 0xff, 0x5a, 0xec, 0x70, + 0x28, 0x6a, 0x34, 0x5c, + 0x00, 0x65, 0x54, 0x41, + 0x08, 0x6a, 0x34, 0x5c, + 0x00, 0x65, 0x54, 0x41, 0xff, 0x6a, 0xd8, 0x01, 0xff, 0x6a, 0x32, 0x01, 0x90, 0x36, 0x6c, 0x00, - 0x10, 0x03, 0x48, 0x69, - 0x00, 0x65, 0x2c, 0x41, + 0x10, 0x03, 0x4a, 0x69, + 0x00, 0x65, 0x2e, 0x41, 0x08, 0x01, 0x02, 0x00, - 0x02, 0x0b, 0xfa, 0x78, + 0x02, 0x0b, 0xfc, 0x78, 0xf7, 0x01, 0x02, 0x08, 0xff, 0x06, 0xcc, 0x0c, 0xf0, 0x19, 0x6e, 0x08, - 0x08, 0x1f, 0x06, 0x79, + 0x08, 0x1f, 0x08, 0x79, 0x08, 0x37, 0x6e, 0x00, 0x1a, 0x01, 0x02, 0x00, 0x08, 0x6a, 0x18, 0x00, 0x08, 0x11, 0x22, 0x00, - 0x00, 0x65, 0xcc, 0x41, - 0x32, 0x58, 0x00, 0x08, + 0x00, 0x65, 0xce, 0x41, + 0xb2, 0x00, 0x00, 0x08, 0x40, 0x6a, 0x16, 0x00, 0xff, 0x3e, 0x20, 0x09, 0xff, 0xba, 0x7c, 0x08, 0xff, 0xa1, 0x6e, 0x08, - 0x80, 0x0b, 0xc2, 0x79, - 0xe4, 0x6a, 0x1c, 0x5c, + 0x80, 0x0b, 0xc4, 0x79, + 0xe4, 0x6a, 0x1e, 0x5c, 0x08, 0x6a, 0x18, 0x00, 0x07, 0xa1, 0xc8, 0x08, - 0x80, 0x64, 0x32, 0x5c, - 0x20, 0xa0, 0x28, 0x79, - 0x20, 0x6a, 0x32, 0x5c, - 0x00, 0xb8, 0x32, 0x5c, + 0x80, 0x64, 0x34, 0x5c, + 0x20, 0xa0, 0x2a, 0x79, + 0x20, 0x6a, 0x34, 0x5c, + 0x00, 0xb8, 0x34, 0x5c, 0xff, 0xb8, 0xb4, 0x08, 0xff, 0xb4, 0x6c, 0x08, - 0x10, 0x03, 0x44, 0x69, - 0x08, 0x36, 0x5c, 0x69, - 0x04, 0x36, 0x82, 0x69, - 0x02, 0x36, 0x92, 0x69, - 0x01, 0x36, 0x4a, 0x79, - 0x00, 0x6a, 0x8e, 0x5d, + 0x10, 0x03, 0x46, 0x69, + 0x08, 0x36, 0x5e, 0x69, + 0x04, 0x36, 0x84, 0x69, + 0x02, 0x36, 0x94, 0x69, + 0x01, 0x36, 0x4c, 0x79, + 0x00, 0x6a, 0x90, 0x5d, 0xff, 0x6a, 0xa4, 0x08, - 0x00, 0x65, 0x9e, 0x59, - 0x04, 0x52, 0x3c, 0x61, + 0x00, 0x65, 0xa0, 0x59, + 0x04, 0x52, 0x3e, 0x61, 0x0d, 0x6a, 0x6a, 0x00, - 0x00, 0xb9, 0x18, 0x5d, - 0x00, 0x65, 0x2a, 0x41, + 0x00, 0xb9, 0x1a, 0x5d, + 0x00, 0x65, 0x2c, 0x41, 0xa4, 0x6a, 0x06, 0x00, - 0x00, 0x65, 0xf8, 0x58, + 0x00, 0x65, 0xfa, 0x58, 0x00, 0x65, 0xd4, 0x40, - 0xe4, 0x6a, 0x1c, 0x5c, - 0x20, 0x36, 0x50, 0x79, - 0x02, 0x6a, 0x32, 0x5c, - 0x04, 0x6a, 0x32, 0x5c, - 0x01, 0x03, 0x52, 0x69, + 0xe4, 0x6a, 0x1e, 0x5c, + 0x20, 0x36, 0x52, 0x79, + 0x02, 0x6a, 0x34, 0x5c, + 0x04, 0x6a, 0x34, 0x5c, + 0x01, 0x03, 0x54, 0x69, 0xff, 0x6a, 0x06, 0x08, 0x01, 0x6a, 0x7a, 0x00, - 0x00, 0x65, 0x9e, 0x59, + 0x00, 0x65, 0xa0, 0x59, 0x00, 0x65, 0x0c, 0x40, - 0x84, 0x6a, 0x1c, 0x5c, - 0x00, 0x65, 0xf8, 0x58, + 0x84, 0x6a, 0x1e, 0x5c, + 0x00, 0x65, 0xfa, 0x58, 0xff, 0x66, 0xc8, 0x08, 0xff, 0x64, 0xd8, 0x09, 0xff, 0x64, 0x32, 0x09, 0x5b, 0x64, 0xc8, 0x28, 0x20, 0x64, 0xca, 0x18, 0xff, 0x6c, 0xc8, 0x08, - 0xff, 0x64, 0x7e, 0x79, + 0xff, 0x64, 0x80, 0x79, 0x08, 0x01, 0x02, 0x00, - 0x02, 0x0b, 0x70, 0x79, - 0x01, 0x64, 0x76, 0x61, + 0x02, 0x0b, 0x72, 0x79, + 0x01, 0x64, 0x78, 0x61, 0xf7, 0x01, 0x02, 0x08, 0xff, 0x06, 0xd8, 0x09, 0xff, 0x06, 0x32, 0x09, 0xff, 0x64, 0xc8, 0x18, - 0xff, 0x64, 0x6e, 0x69, + 0xff, 0x64, 0x70, 0x69, 0xf7, 0x36, 0x6c, 0x08, - 0x00, 0x65, 0x2c, 0x41, - 0x01, 0xb5, 0x8a, 0x79, + 0x00, 0x65, 0x2e, 0x41, + 0x01, 0xb5, 0x8c, 0x79, 0x00, 0x6a, 0x7a, 0x00, - 0x44, 0x6a, 0x1c, 0x5c, - 0x00, 0x65, 0x8e, 0x41, + 0x44, 0x6a, 0x1e, 0x5c, + 0x00, 0x65, 0x90, 0x41, 0x40, 0x6a, 0x7a, 0x00, - 0x04, 0x6a, 0x1c, 0x5c, + 0x04, 0x6a, 0x1e, 0x5c, 0x00, 0x6a, 0x72, 0x58, - 0x00, 0x65, 0x04, 0x42, - 0xc4, 0x6a, 0x1c, 0x5c, + 0x00, 0x65, 0x06, 0x42, + 0xc4, 0x6a, 0x1e, 0x5c, 0xc0, 0x6a, 0x7a, 0x00, - 0x00, 0xa2, 0x32, 0x5c, + 0x00, 0xa2, 0x34, 0x5c, 0xe4, 0x6a, 0x06, 0x00, - 0x00, 0x6a, 0x32, 0x5c, - 0x00, 0x65, 0x52, 0x41, - 0x10, 0x36, 0xa2, 0x69, - 0x00, 0xb9, 0x98, 0x43, + 0x00, 0x6a, 0x34, 0x5c, + 0x00, 0x65, 0x54, 0x41, + 0x10, 0x36, 0xa4, 0x69, + 0x00, 0xb9, 0x9a, 0x43, 0x18, 0x6a, 0xda, 0x01, 0xff, 0x69, 0xd8, 0x09, 0x1c, 0x6a, 0xd0, 0x01, 0x09, 0xee, 0xdc, 0x01, - 0x80, 0xee, 0xaa, 0x79, + 0x80, 0xee, 0xac, 0x79, 0xff, 0x6a, 0xdc, 0x09, 0x01, 0x93, 0x26, 0x01, 0x03, 0x6a, 0x2a, 0x01, @@ -224,7 +225,7 @@ static u_int8_t seqprog[] = { 0xff, 0x6a, 0x1a, 0x09, 0xff, 0x6a, 0x1c, 0x09, 0x0a, 0x93, 0x26, 0x01, - 0x00, 0x65, 0x7e, 0x5d, + 0x00, 0x65, 0x80, 0x5d, 0x01, 0x51, 0xa2, 0x18, 0x02, 0x6a, 0x22, 0x05, 0x08, 0x6a, 0x72, 0x58, @@ -232,19 +233,19 @@ static u_int8_t seqprog[] = { 0x08, 0x11, 0x22, 0x00, 0x80, 0x6a, 0x68, 0x00, 0x80, 0x36, 0x6c, 0x00, - 0x00, 0x65, 0xe6, 0x5c, + 0x00, 0x65, 0xe8, 0x5c, 0xff, 0x3d, 0xc8, 0x08, - 0xbf, 0x64, 0x04, 0x7a, - 0x80, 0x64, 0xd8, 0x72, - 0xa0, 0x64, 0x12, 0x73, - 0xc0, 0x64, 0x0a, 0x73, - 0xe0, 0x64, 0x5a, 0x73, + 0xbf, 0x64, 0x06, 0x7a, + 0x80, 0x64, 0xda, 0x72, + 0xa0, 0x64, 0x14, 0x73, + 0xc0, 0x64, 0x0c, 0x73, + 0xe0, 0x64, 0x5c, 0x73, 0x01, 0x6a, 0x22, 0x01, - 0x00, 0x65, 0xcc, 0x41, + 0x00, 0x65, 0xce, 0x41, 0xf7, 0x11, 0x22, 0x08, 0xff, 0x06, 0xd4, 0x08, 0xf7, 0x01, 0x02, 0x08, - 0x09, 0x0c, 0xe4, 0x79, + 0x09, 0x0c, 0xe6, 0x79, 0x08, 0x0c, 0x0c, 0x68, 0x01, 0x6a, 0x22, 0x01, 0xff, 0x6a, 0x26, 0x09, @@ -257,27 +258,27 @@ static u_int8_t seqprog[] = { 0x03, 0xa9, 0x18, 0x31, 0x03, 0xa9, 0x10, 0x30, 0x08, 0x6a, 0xcc, 0x00, - 0xa9, 0x6a, 0xfc, 0x5c, + 0xa9, 0x6a, 0xfe, 0x5c, 0x01, 0xa9, 0xb2, 0x08, - 0x00, 0x65, 0x26, 0x42, + 0x00, 0x65, 0x28, 0x42, 0xa8, 0x6a, 0x6a, 0x00, 0x79, 0x6a, 0x6a, 0x00, - 0x40, 0x3d, 0x0c, 0x6a, + 0x40, 0x3d, 0x0e, 0x6a, 0x04, 0x35, 0x6a, 0x00, - 0x00, 0x65, 0x54, 0x5c, + 0x00, 0x65, 0x56, 0x5c, 0x80, 0x6a, 0xd4, 0x01, - 0x20, 0x36, 0xf6, 0x69, + 0x20, 0x36, 0xf8, 0x69, 0x20, 0x36, 0x6c, 0x00, 0x07, 0xac, 0x10, 0x31, 0x88, 0x6a, 0xcc, 0x00, - 0xac, 0x6a, 0xf4, 0x5c, + 0xac, 0x6a, 0xf6, 0x5c, 0x01, 0xb0, 0xb2, 0x08, 0x03, 0x8c, 0x10, 0x30, - 0x00, 0x65, 0xee, 0x5c, + 0x00, 0x65, 0xf0, 0x5c, 0x05, 0xa3, 0x70, 0x30, 0x38, 0x6a, 0xcc, 0x00, - 0xa3, 0x6a, 0xf8, 0x5c, - 0xff, 0x38, 0x36, 0x6a, + 0xa3, 0x6a, 0xfa, 0x5c, + 0xff, 0x38, 0x38, 0x6a, 0x80, 0x02, 0x04, 0x00, 0xe7, 0x35, 0x6a, 0x08, 0x03, 0x69, 0x18, 0x31, @@ -285,352 +286,352 @@ static u_int8_t seqprog[] = { 0xff, 0x6a, 0x10, 0x00, 0xff, 0x6a, 0x12, 0x00, 0xff, 0x6a, 0x14, 0x00, - 0x01, 0x38, 0x40, 0x62, + 0x01, 0x38, 0x42, 0x62, 0x02, 0xfc, 0xf8, 0x01, - 0x80, 0x0b, 0x3e, 0x7a, - 0x04, 0x35, 0x40, 0x7a, + 0x80, 0x0b, 0x40, 0x7a, + 0x04, 0x35, 0x42, 0x7a, 0xbf, 0x35, 0x6a, 0x08, 0xff, 0x69, 0xca, 0x08, 0xff, 0x35, 0x26, 0x09, - 0x04, 0x0b, 0x44, 0x6a, - 0x04, 0x0b, 0x4c, 0x6a, - 0x10, 0x0c, 0x46, 0x7a, - 0x00, 0x35, 0x40, 0x5c, - 0x80, 0x02, 0xb4, 0x6a, - 0xff, 0x08, 0x9a, 0x6a, - 0xff, 0x09, 0x9a, 0x6a, - 0xff, 0x0a, 0x9a, 0x6a, + 0x04, 0x0b, 0x46, 0x6a, + 0x04, 0x0b, 0x4e, 0x6a, + 0x10, 0x0c, 0x48, 0x7a, + 0x00, 0x35, 0x42, 0x5c, + 0x80, 0x02, 0xb6, 0x6a, + 0xff, 0x08, 0x9c, 0x6a, + 0xff, 0x09, 0x9c, 0x6a, + 0xff, 0x0a, 0x9c, 0x6a, 0xff, 0x38, 0x70, 0x18, - 0xff, 0x38, 0x9a, 0x7a, - 0x80, 0xea, 0x70, 0x62, + 0xff, 0x38, 0x9c, 0x7a, + 0x80, 0xea, 0x72, 0x62, 0xef, 0x38, 0xc8, 0x18, 0x80, 0x6a, 0xc8, 0x00, - 0x00, 0x65, 0x62, 0x4a, + 0x00, 0x65, 0x64, 0x4a, 0x33, 0x38, 0xc8, 0x28, 0xff, 0x64, 0xd0, 0x09, 0x04, 0x39, 0xc0, 0x31, 0x09, 0x6a, 0xd6, 0x01, - 0x80, 0xeb, 0x68, 0x7a, + 0x80, 0xeb, 0x6a, 0x7a, 0xf7, 0xeb, 0xd6, 0x09, - 0x08, 0xeb, 0x6c, 0x6a, + 0x08, 0xeb, 0x6e, 0x6a, 0x01, 0x6a, 0xd6, 0x01, 0x08, 0xe9, 0x10, 0x31, 0x88, 0x6a, 0xcc, 0x00, - 0x39, 0x6a, 0xfa, 0x5c, + 0x39, 0x6a, 0xfc, 0x5c, 0x08, 0x6a, 0x18, 0x01, 0xff, 0x6a, 0x1a, 0x09, 0xff, 0x6a, 0x1c, 0x09, 0x0d, 0x93, 0x26, 0x01, - 0x00, 0x65, 0x7e, 0x5d, - 0x88, 0x6a, 0x6e, 0x5d, - 0x01, 0x8c, 0x86, 0x7a, + 0x00, 0x65, 0x80, 0x5d, + 0x88, 0x6a, 0x70, 0x5d, + 0x01, 0x8c, 0x88, 0x7a, 0x01, 0x59, 0xb2, 0x10, 0x03, 0x8c, 0x10, 0x30, - 0x00, 0x65, 0xee, 0x5c, + 0x00, 0x65, 0xf0, 0x5c, 0xff, 0x6a, 0xc8, 0x08, 0x08, 0x39, 0x72, 0x18, 0x00, 0x3a, 0x74, 0x20, - 0x80, 0x0b, 0x26, 0x6a, - 0x01, 0x0c, 0x92, 0x7a, - 0x10, 0x0c, 0x26, 0x7a, + 0x80, 0x0b, 0x28, 0x6a, + 0x01, 0x0c, 0x94, 0x7a, + 0x10, 0x0c, 0x28, 0x7a, 0xff, 0x35, 0x26, 0x09, - 0x04, 0x0b, 0x98, 0x6a, - 0x00, 0x65, 0xbe, 0x5a, + 0x04, 0x0b, 0x9a, 0x6a, + 0x00, 0x65, 0xc0, 0x5a, 0x03, 0x08, 0x52, 0x31, 0xff, 0x08, 0x52, 0x09, 0xff, 0x09, 0x54, 0x09, 0xff, 0x0a, 0x56, 0x09, 0xff, 0x38, 0x50, 0x09, 0x12, 0x01, 0x02, 0x00, - 0x04, 0x36, 0xcc, 0x79, + 0x04, 0x36, 0xce, 0x79, 0xfb, 0x36, 0x6c, 0x08, - 0x04, 0x93, 0x2c, 0x79, - 0x01, 0x0c, 0xae, 0x6a, - 0x00, 0x65, 0x2c, 0x41, - 0x00, 0x65, 0xcc, 0x41, - 0x00, 0x65, 0xbe, 0x5a, + 0x04, 0x93, 0x2e, 0x79, + 0x01, 0x0c, 0xb0, 0x6a, + 0x00, 0x65, 0x2e, 0x41, + 0x00, 0x65, 0xce, 0x41, + 0x00, 0x65, 0xc0, 0x5a, 0x12, 0x01, 0x02, 0x00, 0x7f, 0x02, 0x04, 0x08, 0xf1, 0x6a, 0x22, 0x01, - 0x00, 0x65, 0xcc, 0x41, - 0x04, 0x93, 0xd0, 0x6a, + 0x00, 0x65, 0xce, 0x41, + 0x04, 0x93, 0xd2, 0x6a, 0xdf, 0x93, 0x26, 0x09, - 0x20, 0x93, 0xc2, 0x6a, + 0x20, 0x93, 0xc4, 0x6a, 0x02, 0x93, 0x26, 0x01, - 0x01, 0x94, 0xc4, 0x7a, - 0x01, 0x94, 0xc4, 0x7a, - 0x01, 0x94, 0xc4, 0x7a, - 0x01, 0x94, 0xc4, 0x7a, - 0x01, 0x94, 0xc4, 0x7a, - 0x10, 0x94, 0xd0, 0x6a, + 0x01, 0x94, 0xc6, 0x7a, + 0x01, 0x94, 0xc6, 0x7a, + 0x01, 0x94, 0xc6, 0x7a, + 0x01, 0x94, 0xc6, 0x7a, + 0x01, 0x94, 0xc6, 0x7a, + 0x10, 0x94, 0xd2, 0x6a, 0xd7, 0x93, 0x26, 0x09, - 0x08, 0x93, 0xd4, 0x6a, + 0x08, 0x93, 0xd6, 0x6a, 0xff, 0x6a, 0xd4, 0x0c, - 0x00, 0x65, 0x54, 0x5c, + 0x00, 0x65, 0x56, 0x5c, 0xff, 0xb8, 0x18, 0x09, 0x02, 0x6a, 0x1a, 0x31, 0x03, 0x8c, 0x10, 0x30, 0xef, 0xb8, 0xd4, 0x18, - 0x00, 0x65, 0xee, 0x4a, + 0x00, 0x65, 0xf0, 0x4a, 0x01, 0x6a, 0x10, 0x31, 0xa4, 0x6a, 0x26, 0x01, 0x35, 0x6a, 0x26, 0x01, 0x10, 0xc0, 0x32, 0x31, - 0x00, 0x65, 0xfe, 0x42, + 0x00, 0x65, 0x00, 0x43, 0x04, 0xb4, 0x10, 0x31, 0x88, 0x6a, 0xcc, 0x00, - 0xb4, 0x6a, 0xf8, 0x5c, + 0xb4, 0x6a, 0xfa, 0x5c, 0xff, 0x6a, 0x1a, 0x09, 0xff, 0x6a, 0x1c, 0x09, - 0x00, 0x65, 0xee, 0x5c, + 0x00, 0x65, 0xf0, 0x5c, 0x3d, 0x6a, 0x26, 0x01, 0xac, 0x6a, 0x26, 0x01, - 0x04, 0x0b, 0x02, 0x6b, - 0x10, 0x0c, 0xfe, 0x7a, - 0x01, 0x03, 0x02, 0x6b, + 0x04, 0x0b, 0x04, 0x6b, + 0x10, 0x0c, 0x00, 0x7b, + 0x01, 0x03, 0x04, 0x6b, 0xc7, 0x93, 0x26, 0x09, - 0x38, 0x93, 0x06, 0x6b, - 0x00, 0x65, 0xcc, 0x41, - 0x00, 0x65, 0x54, 0x5c, + 0x38, 0x93, 0x08, 0x6b, + 0x00, 0x65, 0xce, 0x41, + 0x00, 0x65, 0x56, 0x5c, 0xff, 0x06, 0x44, 0x09, - 0x00, 0x65, 0xcc, 0x41, + 0x00, 0x65, 0xce, 0x41, 0x10, 0x3d, 0x06, 0x00, 0xff, 0x34, 0xca, 0x08, - 0x80, 0x65, 0x46, 0x63, - 0x10, 0xa0, 0x68, 0x6b, + 0x80, 0x65, 0x48, 0x63, + 0x10, 0xa0, 0x6a, 0x6b, 0xff, 0xa1, 0xdc, 0x08, 0xff, 0x6e, 0xc8, 0x08, - 0xf0, 0x86, 0x20, 0x7b, + 0xf0, 0x86, 0x22, 0x7b, 0x61, 0x6a, 0x22, 0x01, 0xff, 0x6a, 0xd4, 0x08, 0xff, 0x56, 0xca, 0x08, - 0x08, 0xa1, 0x28, 0x7b, + 0x08, 0xa1, 0x2a, 0x7b, 0xff, 0x57, 0xca, 0x08, - 0x80, 0xa1, 0x2c, 0x7b, + 0x80, 0xa1, 0x2e, 0x7b, 0xff, 0x57, 0xca, 0x08, - 0x00, 0x65, 0x68, 0x6b, + 0x00, 0x65, 0x6a, 0x6b, 0x07, 0xa1, 0xca, 0x08, 0x40, 0xa0, 0xc8, 0x08, 0x00, 0x65, 0xca, 0x00, 0x80, 0x65, 0xca, 0x00, - 0x20, 0xa0, 0x4a, 0x7b, + 0x20, 0xa0, 0x4c, 0x7b, 0xff, 0x65, 0x0c, 0x08, - 0x00, 0x65, 0xe6, 0x5c, - 0xa0, 0x3d, 0x52, 0x63, + 0x00, 0x65, 0xe8, 0x5c, + 0xa0, 0x3d, 0x54, 0x63, 0x23, 0xa0, 0x0c, 0x08, - 0x00, 0x65, 0xe6, 0x5c, - 0xa0, 0x3d, 0x52, 0x63, - 0x00, 0xb9, 0x4a, 0x43, - 0xff, 0x65, 0x4a, 0x63, - 0x00, 0x65, 0x68, 0x43, + 0x00, 0x65, 0xe8, 0x5c, + 0xa0, 0x3d, 0x54, 0x63, + 0x00, 0xb9, 0x4c, 0x43, + 0xff, 0x65, 0x4c, 0x63, + 0x00, 0x65, 0x6a, 0x43, 0x40, 0x6a, 0x18, 0x00, 0xff, 0x65, 0x0c, 0x08, - 0x00, 0x65, 0xe6, 0x5c, - 0xa0, 0x3d, 0x10, 0x73, + 0x00, 0x65, 0xe8, 0x5c, + 0xa0, 0x3d, 0x12, 0x73, 0x40, 0x6a, 0x18, 0x00, 0xff, 0x34, 0xa8, 0x08, 0x08, 0x6a, 0x68, 0x00, - 0x00, 0x65, 0xcc, 0x41, - 0x64, 0x6a, 0x16, 0x5c, - 0x80, 0x64, 0xc6, 0x6b, - 0x04, 0x64, 0xa8, 0x73, - 0x02, 0x64, 0xae, 0x73, - 0x00, 0x6a, 0x74, 0x73, - 0x03, 0x64, 0xc2, 0x73, - 0x08, 0x64, 0x70, 0x73, + 0x00, 0x65, 0xce, 0x41, + 0x64, 0x6a, 0x18, 0x5c, + 0x80, 0x64, 0xc8, 0x6b, + 0x04, 0x64, 0xaa, 0x73, + 0x02, 0x64, 0xb0, 0x73, + 0x00, 0x6a, 0x76, 0x73, + 0x03, 0x64, 0xc4, 0x73, + 0x08, 0x64, 0x72, 0x73, 0xa1, 0x6a, 0x22, 0x01, - 0x00, 0x65, 0xe6, 0x5c, - 0x08, 0x52, 0xce, 0x71, - 0x00, 0x65, 0x68, 0x43, + 0x00, 0x65, 0xe8, 0x5c, + 0x08, 0x52, 0xd0, 0x71, + 0x00, 0x65, 0x6a, 0x43, 0xff, 0x06, 0xd4, 0x08, - 0x00, 0x65, 0xcc, 0x41, - 0xff, 0xa8, 0x78, 0x6b, - 0xff, 0xa2, 0x90, 0x7b, + 0x00, 0x65, 0xce, 0x41, + 0xff, 0xa8, 0x7a, 0x6b, + 0xff, 0xa2, 0x92, 0x7b, 0x01, 0x6a, 0x6a, 0x00, - 0x00, 0xb9, 0x18, 0x5d, - 0xff, 0xa2, 0x90, 0x7b, + 0x00, 0xb9, 0x1a, 0x5d, + 0xff, 0xa2, 0x92, 0x7b, 0x71, 0x6a, 0x22, 0x01, 0xff, 0x6a, 0xd4, 0x08, - 0x40, 0x52, 0x90, 0x63, + 0x40, 0x52, 0x92, 0x63, 0x0d, 0x6a, 0x6a, 0x00, - 0x00, 0xb9, 0x18, 0x5d, + 0x00, 0xb9, 0x1a, 0x5d, 0xff, 0x3e, 0x74, 0x09, 0xff, 0x90, 0x7c, 0x08, 0x00, 0x65, 0x50, 0x58, - 0x00, 0x65, 0xde, 0x41, - 0x20, 0xa0, 0x94, 0x6b, + 0x00, 0x65, 0xe0, 0x41, + 0x20, 0xa0, 0x96, 0x6b, 0xff, 0x37, 0xc8, 0x08, - 0x00, 0xb9, 0x98, 0x5b, - 0x00, 0x65, 0xde, 0x41, - 0x00, 0x65, 0x86, 0x5d, + 0x00, 0xb9, 0x9a, 0x5b, + 0x00, 0x65, 0xe0, 0x41, + 0x00, 0x65, 0x88, 0x5d, 0xff, 0x65, 0xa4, 0x08, 0xff, 0xf8, 0xc8, 0x08, 0xff, 0x4f, 0xc8, 0x08, - 0x00, 0x6a, 0xba, 0x5c, - 0x00, 0x52, 0xd0, 0x5c, + 0x00, 0x6a, 0xbc, 0x5c, + 0x00, 0x52, 0xd2, 0x5c, 0x01, 0x4f, 0x9e, 0x18, 0x02, 0x6a, 0x22, 0x05, 0x04, 0xa0, 0x40, 0x01, - 0x00, 0x65, 0xa0, 0x5d, - 0x00, 0x65, 0xde, 0x41, - 0x20, 0x36, 0x70, 0x7b, + 0x00, 0x65, 0xa2, 0x5d, + 0x00, 0x65, 0xe0, 0x41, + 0x20, 0x36, 0x72, 0x7b, 0x05, 0x38, 0x46, 0x31, 0x04, 0x14, 0x58, 0x31, 0x03, 0xa9, 0x60, 0x31, 0xa3, 0x6a, 0xcc, 0x00, - 0x38, 0x6a, 0xf8, 0x5c, + 0x38, 0x6a, 0xfa, 0x5c, 0xac, 0x6a, 0xcc, 0x00, - 0x14, 0x6a, 0xfa, 0x5c, - 0xa9, 0x6a, 0xfc, 0x5c, - 0x00, 0x65, 0x70, 0x43, + 0x14, 0x6a, 0xfc, 0x5c, + 0xa9, 0x6a, 0xfe, 0x5c, + 0x00, 0x65, 0x72, 0x43, 0xdf, 0x36, 0x6c, 0x08, - 0x00, 0x65, 0x70, 0x43, + 0x00, 0x65, 0x72, 0x43, 0x0f, 0x64, 0xc8, 0x08, 0x07, 0x64, 0xc8, 0x08, 0x00, 0x37, 0x6e, 0x00, 0xff, 0x6a, 0xa6, 0x00, - 0x00, 0x65, 0x8a, 0x5c, - 0xff, 0x52, 0xd8, 0x73, - 0x40, 0x36, 0xe2, 0x7b, - 0x00, 0x65, 0x78, 0x5c, - 0x00, 0x65, 0xe4, 0x43, + 0x00, 0x65, 0x8c, 0x5c, + 0xff, 0x52, 0xda, 0x73, + 0x40, 0x36, 0xe4, 0x7b, + 0x00, 0x65, 0x7a, 0x5c, + 0x00, 0x65, 0xe6, 0x43, 0xff, 0x06, 0xd4, 0x08, - 0x00, 0x65, 0xe6, 0x5c, - 0xe0, 0x3d, 0x00, 0x64, - 0x20, 0x12, 0x00, 0x64, - 0x52, 0x6a, 0x0c, 0x5c, - 0x00, 0x65, 0x72, 0x5c, + 0x00, 0x65, 0xe8, 0x5c, + 0xe0, 0x3d, 0x02, 0x64, + 0x20, 0x12, 0x02, 0x64, + 0x52, 0x6a, 0x0e, 0x5c, + 0x00, 0x65, 0x74, 0x5c, 0xff, 0x37, 0xc8, 0x08, - 0x00, 0xa1, 0xf8, 0x63, - 0x04, 0xa0, 0xf8, 0x7b, + 0x00, 0xa1, 0xfa, 0x63, + 0x04, 0xa0, 0xfa, 0x7b, 0xfb, 0xa0, 0x40, 0x09, 0x80, 0x36, 0x6c, 0x00, 0x00, 0x65, 0x74, 0x58, - 0x10, 0xa0, 0x70, 0x7b, + 0x10, 0xa0, 0x72, 0x7b, 0xef, 0xa0, 0x40, 0x09, - 0xff, 0x6a, 0x04, 0x5c, - 0x00, 0x65, 0x70, 0x43, - 0x04, 0xa0, 0xfe, 0x7b, - 0x00, 0x65, 0xa0, 0x5d, - 0x00, 0x65, 0x00, 0x44, - 0x00, 0x65, 0x86, 0x5d, + 0xff, 0x6a, 0x06, 0x5c, + 0x00, 0x65, 0x72, 0x43, + 0x04, 0xa0, 0x00, 0x7c, + 0x00, 0x65, 0xa2, 0x5d, + 0x00, 0x65, 0x02, 0x44, + 0x00, 0x65, 0x88, 0x5d, 0x31, 0x6a, 0x22, 0x01, - 0x00, 0x65, 0x70, 0x43, + 0x00, 0x65, 0x72, 0x43, 0x10, 0x3d, 0x06, 0x00, 0xff, 0x65, 0x68, 0x0c, 0xb1, 0x6a, 0x22, 0x01, - 0x00, 0x65, 0x0e, 0x44, + 0x00, 0x65, 0x10, 0x44, 0xff, 0x06, 0xd4, 0x08, - 0x01, 0x0c, 0x0e, 0x7c, - 0x04, 0x0c, 0x08, 0x6c, + 0x01, 0x0c, 0x10, 0x7c, + 0x04, 0x0c, 0x0a, 0x6c, 0xe0, 0x03, 0x7a, 0x08, - 0xe0, 0x3d, 0x3c, 0x64, + 0xe0, 0x3d, 0x3e, 0x64, 0xff, 0x65, 0xcc, 0x08, 0xff, 0x12, 0xda, 0x0c, 0xff, 0x06, 0xd4, 0x0c, - 0x01, 0x03, 0x1c, 0x6c, + 0x01, 0x03, 0x1e, 0x6c, 0x40, 0x03, 0xcc, 0x08, 0xff, 0x65, 0x06, 0x08, 0x40, 0x65, 0xc8, 0x08, - 0x00, 0x66, 0x2a, 0x74, - 0x40, 0x65, 0x2a, 0x7c, - 0x00, 0x65, 0x2a, 0x5c, + 0x00, 0x66, 0x2c, 0x74, + 0x40, 0x65, 0x2c, 0x7c, + 0x00, 0x65, 0x2c, 0x5c, 0xff, 0x6a, 0xd4, 0x08, 0xff, 0x6a, 0xd4, 0x08, 0xff, 0x6a, 0xd4, 0x08, 0xff, 0x6a, 0xd4, 0x0c, 0x08, 0x01, 0x02, 0x00, - 0x02, 0x0b, 0x34, 0x7c, + 0x02, 0x0b, 0x36, 0x7c, 0xff, 0x65, 0x0c, 0x08, - 0x02, 0x0b, 0x38, 0x7c, + 0x02, 0x0b, 0x3a, 0x7c, 0xf7, 0x01, 0x02, 0x0c, 0xe1, 0x6a, 0x22, 0x01, - 0x00, 0x65, 0xcc, 0x41, + 0x00, 0x65, 0xce, 0x41, 0xff, 0x65, 0x26, 0x09, - 0x01, 0x0b, 0x4c, 0x6c, - 0x10, 0x0c, 0x42, 0x7c, - 0x04, 0x93, 0x4a, 0x6c, - 0x01, 0x94, 0x48, 0x7c, - 0x10, 0x94, 0x4a, 0x6c, + 0x01, 0x0b, 0x4e, 0x6c, + 0x10, 0x0c, 0x44, 0x7c, + 0x04, 0x93, 0x4c, 0x6c, + 0x01, 0x94, 0x4a, 0x7c, + 0x10, 0x94, 0x4c, 0x6c, 0xc7, 0x93, 0x26, 0x09, 0xff, 0x99, 0xd4, 0x08, - 0x38, 0x93, 0x4e, 0x6c, + 0x38, 0x93, 0x50, 0x6c, 0xff, 0x6a, 0xd4, 0x0c, - 0x80, 0x36, 0x52, 0x6c, + 0x80, 0x36, 0x54, 0x6c, 0x21, 0x6a, 0x22, 0x05, 0xff, 0x65, 0x20, 0x09, - 0xff, 0x52, 0x60, 0x64, + 0xff, 0x52, 0x62, 0x64, 0xff, 0x37, 0xc8, 0x08, - 0xa1, 0x6a, 0x6c, 0x44, + 0xa1, 0x6a, 0x6e, 0x44, 0xff, 0x52, 0xc8, 0x08, - 0xb9, 0x6a, 0x6c, 0x44, + 0xb9, 0x6a, 0x6e, 0x44, 0xff, 0x90, 0xa6, 0x08, - 0xff, 0xba, 0x70, 0x74, + 0xff, 0xba, 0x72, 0x74, 0xff, 0xba, 0x20, 0x09, 0xff, 0x65, 0xca, 0x18, - 0x00, 0x6c, 0x64, 0x64, + 0x00, 0x6c, 0x66, 0x64, 0xff, 0x90, 0xca, 0x0c, 0xff, 0x6a, 0xca, 0x04, - 0x40, 0x36, 0x84, 0x7c, - 0x00, 0x90, 0x58, 0x5c, - 0xff, 0x65, 0x84, 0x74, - 0xff, 0x53, 0x82, 0x74, + 0x40, 0x36, 0x86, 0x7c, + 0x00, 0x90, 0x5a, 0x5c, + 0xff, 0x65, 0x86, 0x74, + 0xff, 0x53, 0x84, 0x74, 0xff, 0xba, 0xcc, 0x08, 0xff, 0x53, 0x20, 0x09, 0xff, 0x66, 0x74, 0x09, 0xff, 0x65, 0x20, 0x0d, 0xff, 0xba, 0x7e, 0x0c, - 0x00, 0x6a, 0x8e, 0x5d, + 0x00, 0x6a, 0x90, 0x5d, 0x0d, 0x6a, 0x6a, 0x00, - 0x00, 0x52, 0x18, 0x45, - 0xff, 0x3f, 0xde, 0x74, + 0x00, 0x52, 0x1a, 0x45, + 0xff, 0x3f, 0xe0, 0x74, 0xff, 0x6a, 0xa4, 0x00, - 0x00, 0x3f, 0x58, 0x5c, - 0xff, 0x65, 0xde, 0x74, + 0x00, 0x3f, 0x5a, 0x5c, + 0xff, 0x65, 0xe0, 0x74, 0x40, 0x36, 0x6c, 0x00, - 0x20, 0xa0, 0x98, 0x6c, + 0x20, 0xa0, 0x9a, 0x6c, 0xff, 0xb9, 0xa4, 0x0c, 0xff, 0x6a, 0xa4, 0x04, 0xff, 0x65, 0xa6, 0x08, 0xe0, 0x6a, 0xcc, 0x00, - 0x45, 0x6a, 0x0c, 0x5d, + 0x45, 0x6a, 0x0e, 0x5d, 0x01, 0x6a, 0xd0, 0x01, 0x09, 0x6a, 0xd6, 0x01, - 0x80, 0xeb, 0xa4, 0x7c, + 0x80, 0xeb, 0xa6, 0x7c, 0x01, 0x6a, 0xd6, 0x01, 0x01, 0xe9, 0xa6, 0x34, 0x88, 0x6a, 0xcc, 0x00, - 0x45, 0x6a, 0x0c, 0x5d, + 0x45, 0x6a, 0x0e, 0x5d, 0x01, 0x6a, 0x18, 0x01, 0xff, 0x6a, 0x1a, 0x09, 0xff, 0x6a, 0x1c, 0x09, 0x0d, 0x6a, 0x26, 0x01, - 0x00, 0x65, 0x7e, 0x5d, + 0x00, 0x65, 0x80, 0x5d, 0xff, 0x99, 0xa6, 0x0c, 0xff, 0x65, 0xa6, 0x08, 0xe0, 0x6a, 0xcc, 0x00, - 0x45, 0x6a, 0x0c, 0x5d, + 0x45, 0x6a, 0x0e, 0x5d, 0x01, 0x6a, 0xd0, 0x01, 0x01, 0x6a, 0xdc, 0x05, 0x88, 0x6a, 0xcc, 0x00, - 0x45, 0x6a, 0x0c, 0x5d, + 0x45, 0x6a, 0x0e, 0x5d, 0x01, 0x6a, 0x18, 0x01, 0xff, 0x6a, 0x1a, 0x09, 0xff, 0x6a, 0x1c, 0x09, 0x01, 0x6a, 0x26, 0x05, 0x01, 0x65, 0xd8, 0x31, 0x09, 0xee, 0xdc, 0x01, - 0x80, 0xee, 0xd4, 0x7c, + 0x80, 0xee, 0xd6, 0x7c, 0xff, 0x6a, 0xdc, 0x0d, 0xff, 0x65, 0x32, 0x09, 0x0a, 0x93, 0x26, 0x01, - 0x00, 0x65, 0x7e, 0x45, + 0x00, 0x65, 0x80, 0x45, 0xff, 0x37, 0xc8, 0x08, - 0x02, 0x6a, 0x9a, 0x5c, + 0x02, 0x6a, 0x9c, 0x5c, 0xff, 0x53, 0xa4, 0x0c, 0xb1, 0x6a, 0x22, 0x01, - 0x01, 0x0c, 0xe6, 0x7c, - 0x04, 0x0c, 0xe4, 0x6c, + 0x01, 0x0c, 0xe8, 0x7c, + 0x04, 0x0c, 0xe6, 0x6c, 0xe0, 0x03, 0x06, 0x08, 0xe0, 0x03, 0x7a, 0x0c, 0xff, 0x8c, 0x10, 0x08, @@ -645,7 +646,7 @@ static u_int8_t seqprog[] = { 0xff, 0x6c, 0xda, 0x0c, 0x3d, 0x64, 0xa6, 0x28, 0x55, 0x64, 0xc8, 0x28, - 0x00, 0x65, 0x0c, 0x45, + 0x00, 0x65, 0x0e, 0x45, 0x2e, 0x64, 0xa6, 0x28, 0x66, 0x64, 0xc8, 0x28, 0x00, 0x6c, 0xda, 0x18, @@ -656,30 +657,30 @@ static u_int8_t seqprog[] = { 0x00, 0x6c, 0xda, 0x24, 0xff, 0x65, 0xc8, 0x08, 0xe0, 0x6a, 0xcc, 0x00, - 0x41, 0x6a, 0x08, 0x5d, + 0x41, 0x6a, 0x0a, 0x5d, 0xff, 0x90, 0xe2, 0x09, - 0x04, 0x35, 0x2a, 0x7d, + 0x04, 0x35, 0x2c, 0x7d, 0x30, 0x6a, 0xd0, 0x01, 0x1d, 0x6a, 0xdc, 0x01, - 0xdc, 0xee, 0x26, 0x65, - 0x00, 0x65, 0x38, 0x45, + 0xdc, 0xee, 0x28, 0x65, + 0x00, 0x65, 0x3a, 0x45, 0x1c, 0x6a, 0xd0, 0x01, 0x01, 0x6a, 0xdc, 0x01, 0x1c, 0xa0, 0xd8, 0x31, 0x09, 0xee, 0xdc, 0x01, - 0x80, 0xee, 0x32, 0x7d, + 0x80, 0xee, 0x34, 0x7d, 0x19, 0x6a, 0xdc, 0x01, - 0xd8, 0xee, 0x36, 0x65, + 0xd8, 0xee, 0x38, 0x65, 0xff, 0x6a, 0xdc, 0x09, - 0x18, 0xee, 0x3a, 0x6d, + 0x18, 0xee, 0x3c, 0x6d, 0xff, 0x6a, 0xd4, 0x0c, 0x88, 0x6a, 0xcc, 0x00, - 0x41, 0x6a, 0x08, 0x5d, + 0x41, 0x6a, 0x0a, 0x5d, 0x1c, 0x6a, 0x18, 0x01, 0xff, 0x6a, 0x1a, 0x09, 0xff, 0x6a, 0x1c, 0x09, 0xff, 0x35, 0x26, 0x09, - 0x04, 0x35, 0x62, 0x6d, + 0x04, 0x35, 0x64, 0x6d, 0xa0, 0x6a, 0xca, 0x00, 0x1c, 0x65, 0xc8, 0x18, 0xff, 0x6c, 0x32, 0x09, @@ -689,14 +690,14 @@ static u_int8_t seqprog[] = { 0xff, 0x6c, 0x32, 0x09, 0xff, 0x6c, 0x32, 0x09, 0xff, 0x6c, 0x32, 0x09, - 0x00, 0x65, 0x50, 0x65, + 0x00, 0x65, 0x52, 0x65, 0x0a, 0x93, 0x26, 0x01, - 0x00, 0x65, 0x7e, 0x5d, - 0x04, 0x35, 0x52, 0x7c, - 0xa0, 0x6a, 0x6e, 0x5d, - 0x00, 0x65, 0x70, 0x5d, - 0x00, 0x65, 0x70, 0x5d, - 0x00, 0x65, 0x70, 0x45, + 0x00, 0x65, 0x80, 0x5d, + 0x04, 0x35, 0x54, 0x7c, + 0xa0, 0x6a, 0x70, 0x5d, + 0x00, 0x65, 0x72, 0x5d, + 0x00, 0x65, 0x72, 0x5d, + 0x00, 0x65, 0x72, 0x45, 0xff, 0x65, 0xcc, 0x08, 0xff, 0x99, 0xda, 0x08, 0xff, 0x99, 0xda, 0x08, @@ -705,20 +706,20 @@ static u_int8_t seqprog[] = { 0xff, 0x99, 0xda, 0x08, 0xff, 0x99, 0xda, 0x08, 0xff, 0x99, 0xda, 0x0c, - 0x08, 0x94, 0x7e, 0x7d, + 0x08, 0x94, 0x80, 0x7d, 0xf7, 0x93, 0x26, 0x09, - 0x08, 0x93, 0x82, 0x6d, + 0x08, 0x93, 0x84, 0x6d, 0xff, 0x6a, 0xd4, 0x0c, 0xff, 0x40, 0x74, 0x09, 0xff, 0x6a, 0x72, 0x01, 0xff, 0x90, 0x80, 0x0c, 0xff, 0x6a, 0x72, 0x05, - 0xff, 0x40, 0x9c, 0x65, - 0xff, 0x3f, 0x94, 0x65, + 0xff, 0x40, 0x9e, 0x65, + 0xff, 0x3f, 0x96, 0x65, 0xff, 0x6a, 0xca, 0x04, 0xff, 0x3f, 0x20, 0x09, 0x01, 0x6a, 0x6a, 0x00, - 0x00, 0xb9, 0x18, 0x5d, + 0x00, 0xb9, 0x1a, 0x5d, 0xff, 0xba, 0x7e, 0x0c, 0xff, 0x40, 0x20, 0x09, 0xff, 0xba, 0x80, 0x0c, @@ -747,7 +748,7 @@ static int ahc_patch14_func(struct ahc_softc *ahc); static int ahc_patch14_func(struct ahc_softc *ahc) { - return ((ahc->features & AHC_HS_MAILBOX) != 0); + return ((ahc->features & AHC_CMD_CHAN) == 0); } static int ahc_patch13_func(struct ahc_softc *ahc); @@ -755,7 +756,7 @@ static int ahc_patch13_func(struct ahc_softc *ahc); static int ahc_patch13_func(struct ahc_softc *ahc) { - return ((ahc->features & AHC_CMD_CHAN) == 0); + return ((ahc->features & AHC_ULTRA2) == 0); } static int ahc_patch12_func(struct ahc_softc *ahc); @@ -763,7 +764,7 @@ static int ahc_patch12_func(struct ahc_softc *ahc); static int ahc_patch12_func(struct ahc_softc *ahc) { - return ((ahc->features & AHC_ULTRA2) == 0); + return ((ahc->features & AHC_HS_MAILBOX) != 0); } static int ahc_patch11_func(struct ahc_softc *ahc); @@ -888,7 +889,7 @@ struct patch { { ahc_patch9_func, 58, 2, 1 }, { ahc_patch8_func, 60, 1, 2 }, { ahc_patch0_func, 61, 1, 1 }, - { ahc_patch7_func, 64, 64, 24 }, + { ahc_patch7_func, 64, 65, 26 }, { ahc_patch10_func, 64, 1, 1 }, { ahc_patch1_func, 69, 3, 2 }, { ahc_patch0_func, 72, 3, 1 }, @@ -910,96 +911,98 @@ struct patch { { ahc_patch0_func, 99, 1, 1 }, { ahc_patch1_func, 102, 1, 2 }, { ahc_patch0_func, 103, 1, 1 }, - { ahc_patch1_func, 119, 1, 2 }, - { ahc_patch0_func, 120, 1, 1 }, - { ahc_patch10_func, 128, 7, 2 }, - { ahc_patch3_func, 129, 2, 1 }, - { ahc_patch7_func, 140, 85, 8 }, - { ahc_patch5_func, 155, 1, 1 }, - { ahc_patch1_func, 177, 1, 2 }, - { ahc_patch0_func, 178, 1, 1 }, - { ahc_patch1_func, 187, 1, 2 }, - { ahc_patch0_func, 188, 1, 1 }, - { ahc_patch1_func, 209, 6, 2 }, - { ahc_patch0_func, 215, 8, 1 }, - { ahc_patch10_func, 225, 20, 1 }, - { ahc_patch8_func, 246, 1, 2 }, - { ahc_patch0_func, 247, 2, 1 }, - { ahc_patch8_func, 251, 2, 2 }, - { ahc_patch0_func, 253, 3, 3 }, - { ahc_patch1_func, 253, 1, 2 }, - { ahc_patch0_func, 254, 2, 1 }, - { ahc_patch8_func, 258, 1, 2 }, - { ahc_patch0_func, 259, 1, 1 }, - { ahc_patch1_func, 263, 1, 1 }, - { ahc_patch1_func, 266, 1, 2 }, - { ahc_patch0_func, 267, 2, 1 }, - { ahc_patch12_func, 270, 2, 3 }, - { ahc_patch1_func, 270, 1, 2 }, - { ahc_patch0_func, 271, 1, 1 }, - { ahc_patch1_func, 272, 1, 2 }, - { ahc_patch0_func, 273, 2, 1 }, - { ahc_patch8_func, 278, 1, 2 }, - { ahc_patch0_func, 279, 4, 3 }, - { ahc_patch1_func, 279, 1, 2 }, - { ahc_patch0_func, 280, 3, 1 }, - { ahc_patch8_func, 284, 1, 2 }, - { ahc_patch0_func, 285, 3, 2 }, - { ahc_patch7_func, 285, 2, 1 }, - { ahc_patch8_func, 288, 5, 2 }, - { ahc_patch0_func, 293, 1, 1 }, - { ahc_patch1_func, 300, 13, 2 }, - { ahc_patch0_func, 313, 8, 1 }, - { ahc_patch12_func, 323, 2, 3 }, - { ahc_patch1_func, 323, 1, 2 }, - { ahc_patch0_func, 324, 1, 1 }, - { ahc_patch7_func, 328, 1, 1 }, - { ahc_patch8_func, 331, 2, 1 }, - { ahc_patch8_func, 333, 1, 1 }, - { ahc_patch1_func, 334, 1, 2 }, - { ahc_patch0_func, 335, 3, 1 }, - { ahc_patch8_func, 339, 1, 1 }, - { ahc_patch7_func, 340, 5, 1 }, - { ahc_patch8_func, 346, 2, 1 }, - { ahc_patch8_func, 351, 13, 1 }, - { ahc_patch10_func, 364, 96, 13 }, - { ahc_patch1_func, 365, 11, 5 }, - { ahc_patch12_func, 367, 1, 1 }, - { ahc_patch8_func, 371, 1, 2 }, - { ahc_patch0_func, 372, 1, 1 }, - { ahc_patch0_func, 376, 4, 1 }, - { ahc_patch12_func, 380, 2, 3 }, - { ahc_patch13_func, 380, 1, 1 }, - { ahc_patch0_func, 382, 1, 1 }, - { ahc_patch14_func, 398, 3, 1 }, - { ahc_patch3_func, 402, 2, 2 }, - { ahc_patch0_func, 404, 2, 2 }, - { ahc_patch15_func, 404, 2, 1 }, - { ahc_patch4_func, 462, 1, 2 }, - { ahc_patch0_func, 463, 1, 1 }, - { ahc_patch2_func, 466, 1, 1 }, - { ahc_patch10_func, 468, 58, 6 }, - { ahc_patch1_func, 472, 3, 2 }, - { ahc_patch0_func, 475, 5, 1 }, - { ahc_patch15_func, 483, 1, 2 }, - { ahc_patch0_func, 484, 1, 1 }, - { ahc_patch5_func, 489, 1, 1 }, - { ahc_patch7_func, 526, 16, 1 }, - { ahc_patch12_func, 551, 1, 1 }, - { ahc_patch1_func, 590, 7, 2 }, - { ahc_patch0_func, 597, 8, 1 }, - { ahc_patch1_func, 606, 4, 2 }, - { ahc_patch0_func, 610, 6, 1 }, - { ahc_patch1_func, 616, 4, 2 }, - { ahc_patch0_func, 620, 3, 1 }, - { ahc_patch13_func, 631, 10, 1 }, - { ahc_patch7_func, 641, 3, 1 }, - { ahc_patch1_func, 653, 18, 4 }, - { ahc_patch16_func, 662, 4, 2 }, - { ahc_patch0_func, 666, 2, 1 }, - { ahc_patch0_func, 671, 32, 1 }, - { ahc_patch5_func, 707, 3, 2 }, - { ahc_patch0_func, 710, 1, 1 }, - { ahc_patch5_func, 711, 9, 1 }, + { ahc_patch12_func, 111, 1, 2 }, + { ahc_patch0_func, 112, 1, 1 }, + { ahc_patch1_func, 120, 1, 2 }, + { ahc_patch0_func, 121, 1, 1 }, + { ahc_patch10_func, 129, 7, 2 }, + { ahc_patch3_func, 130, 2, 1 }, + { ahc_patch7_func, 141, 85, 8 }, + { ahc_patch5_func, 156, 1, 1 }, + { ahc_patch1_func, 178, 1, 2 }, + { ahc_patch0_func, 179, 1, 1 }, + { ahc_patch1_func, 188, 1, 2 }, + { ahc_patch0_func, 189, 1, 1 }, + { ahc_patch1_func, 210, 6, 2 }, + { ahc_patch0_func, 216, 8, 1 }, + { ahc_patch10_func, 226, 20, 1 }, + { ahc_patch8_func, 247, 1, 2 }, + { ahc_patch0_func, 248, 2, 1 }, + { ahc_patch8_func, 252, 2, 2 }, + { ahc_patch0_func, 254, 3, 3 }, + { ahc_patch1_func, 254, 1, 2 }, + { ahc_patch0_func, 255, 2, 1 }, + { ahc_patch8_func, 259, 1, 2 }, + { ahc_patch0_func, 260, 1, 1 }, + { ahc_patch1_func, 264, 1, 1 }, + { ahc_patch1_func, 267, 1, 2 }, + { ahc_patch0_func, 268, 2, 1 }, + { ahc_patch13_func, 271, 2, 3 }, + { ahc_patch1_func, 271, 1, 2 }, + { ahc_patch0_func, 272, 1, 1 }, + { ahc_patch1_func, 273, 1, 2 }, + { ahc_patch0_func, 274, 2, 1 }, + { ahc_patch8_func, 279, 1, 2 }, + { ahc_patch0_func, 280, 4, 3 }, + { ahc_patch1_func, 280, 1, 2 }, + { ahc_patch0_func, 281, 3, 1 }, + { ahc_patch8_func, 285, 1, 2 }, + { ahc_patch0_func, 286, 3, 2 }, + { ahc_patch7_func, 286, 2, 1 }, + { ahc_patch8_func, 289, 5, 2 }, + { ahc_patch0_func, 294, 1, 1 }, + { ahc_patch1_func, 301, 13, 2 }, + { ahc_patch0_func, 314, 8, 1 }, + { ahc_patch13_func, 324, 2, 3 }, + { ahc_patch1_func, 324, 1, 2 }, + { ahc_patch0_func, 325, 1, 1 }, + { ahc_patch7_func, 329, 1, 1 }, + { ahc_patch8_func, 332, 2, 1 }, + { ahc_patch8_func, 334, 1, 1 }, + { ahc_patch1_func, 335, 1, 2 }, + { ahc_patch0_func, 336, 3, 1 }, + { ahc_patch8_func, 340, 1, 1 }, + { ahc_patch7_func, 341, 5, 1 }, + { ahc_patch8_func, 347, 2, 1 }, + { ahc_patch8_func, 352, 13, 1 }, + { ahc_patch10_func, 365, 96, 13 }, + { ahc_patch1_func, 366, 11, 5 }, + { ahc_patch13_func, 368, 1, 1 }, + { ahc_patch8_func, 372, 1, 2 }, + { ahc_patch0_func, 373, 1, 1 }, + { ahc_patch0_func, 377, 4, 1 }, + { ahc_patch13_func, 381, 2, 3 }, + { ahc_patch14_func, 381, 1, 1 }, + { ahc_patch0_func, 383, 1, 1 }, + { ahc_patch12_func, 399, 3, 1 }, + { ahc_patch3_func, 403, 2, 2 }, + { ahc_patch0_func, 405, 2, 2 }, + { ahc_patch15_func, 405, 2, 1 }, + { ahc_patch4_func, 463, 1, 2 }, + { ahc_patch0_func, 464, 1, 1 }, + { ahc_patch2_func, 467, 1, 1 }, + { ahc_patch10_func, 469, 58, 6 }, + { ahc_patch1_func, 473, 3, 2 }, + { ahc_patch0_func, 476, 5, 1 }, + { ahc_patch15_func, 484, 1, 2 }, + { ahc_patch0_func, 485, 1, 1 }, + { ahc_patch5_func, 490, 1, 1 }, + { ahc_patch7_func, 527, 16, 1 }, + { ahc_patch13_func, 552, 1, 1 }, + { ahc_patch1_func, 591, 7, 2 }, + { ahc_patch0_func, 598, 8, 1 }, + { ahc_patch1_func, 607, 4, 2 }, + { ahc_patch0_func, 611, 6, 1 }, + { ahc_patch1_func, 617, 4, 2 }, + { ahc_patch0_func, 621, 3, 1 }, + { ahc_patch14_func, 632, 10, 1 }, + { ahc_patch7_func, 642, 3, 1 }, + { ahc_patch1_func, 654, 18, 4 }, + { ahc_patch16_func, 663, 4, 2 }, + { ahc_patch0_func, 667, 2, 1 }, + { ahc_patch0_func, 672, 32, 1 }, + { ahc_patch5_func, 708, 3, 2 }, + { ahc_patch0_func, 711, 1, 1 }, + { ahc_patch5_func, 712, 9, 1 }, }; -- 2.20.1