diff --git a/share/man/man4/man4.i386/Makefile b/share/man/man4/man4.i386/Makefile index 3dfc5f151f9f..9cf662a5eba3 100644 --- a/share/man/man4/man4.i386/Makefile +++ b/share/man/man4/man4.i386/Makefile @@ -1,33 +1,32 @@ # $FreeBSD$ MAN= apm.4 \ - ce.4 \ cp.4 \ CPU_ELAN.4 \ glxiic.4 \ glxsb.4 \ longrun.4 \ npx.4 \ pae.4 \ pbio.4 \ perfmon.4 \ pnp.4 \ pnpbios.4 \ sbni.4 \ smapi.4 \ vpd.4 MLINKS= CPU_ELAN.4 CPU_SOEKRIS.4 MLINKS+=pae.4 PAE.4 MLINKS+=sbni.4 if_sbni.4 # Link files to the architecture directory _ARCH_SUBDIR=i386 .for _manpage _link in ${MLINKS} MLINKS+=${_link} ${_ARCH_SUBDIR}/${_link} .endfor .for _manpage in ${MAN} MLINKS+=${_manpage} ${_ARCH_SUBDIR}/${_manpage} .endfor .include diff --git a/share/man/man4/man4.i386/ce.4 b/share/man/man4/man4.i386/ce.4 deleted file mode 100644 index 1f5138f24cde..000000000000 --- a/share/man/man4/man4.i386/ce.4 +++ /dev/null @@ -1,97 +0,0 @@ -.\" Copyright (c) 2006 Roman Kurakin -.\" All rights reserved. -.\" -.\" Redistribution and use in source and binary forms, with or without -.\" modification, are permitted provided that the following conditions -.\" are met: -.\" 1. Redistributions of source code must retain the above copyright -.\" notice, this list of conditions and the following disclaimer. -.\" 2. Redistributions in binary form must reproduce the above copyright -.\" notice, this list of conditions and the following disclaimer in the -.\" documentation and/or other materials provided with the distribution. -.\" -.\" THIS SOFTWARE IS PROVIDED BY AUTHOR AND CONTRIBUTORS ``AS IS'' AND -.\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -.\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE -.\" ARE DISCLAIMED. IN NO EVENT SHALL AUTHOR OR CONTRIBUTORS BE LIABLE -.\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL -.\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS -.\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) -.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT -.\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY -.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF -.\" SUCH DAMAGE. -.\" -.\" $FreeBSD$ -.\" -.Dd December 13, 2022 -.Dt CE 4 i386 -.Os -.Sh NAME -.Nm ce -.Nd "driver for synchronous Cronyx Tau-PCI/32 WAN adapters" -.Sh SYNOPSIS -To compile this driver into the kernel, -place the following line in your -kernel configuration file: -.Bd -ragged -offset indent -.Cd "device ce" -.Ed -.Pp -Alternatively, to load the driver as a -module at boot time, place the following line in -.Xr loader.conf 5 : -.Bd -literal -offset indent -if_ce_load="YES" -.Ed -.Sh DEPRECATION NOTICE -The -.Nm -driver is not present in -.Fx 14.0 -and later. -.Sh DESCRIPTION -The -.Nm -driver creates a -.Xr netgraph 4 -node for each device found. -The node is usually paired with -.Xr ng_async 4 , -.Xr ng_cisco 4 , -.Xr ng_frame_relay 4 -or with -.Xr ng_ppp 4 -under control of net/mpd5 port. -.Pp -Refer to -.Xr sconfig 8 -for information about the -.Nm -adapter configuration. -.Sh HARDWARE -The -.Nm -driver supports the following models of Tau-PCI/32 WAN adapters: -.Pp -.Bl -tag -width 20n -compact -.It Cronyx Tau-PCI/32 -two fractional/unframed E1 interfaces, -with 32 HDLC channels shared between them with total adapter throughput -2048 kbps. -.It Cronyx Tau-PCI/32-Lite -single fractional/unframed E1 interface, -with 32 HDLC channels. -.El -.Sh SEE ALSO -.Xr cp 4 , -.Xr netgraph 4 , -.Xr sconfig 8 -.Sh HISTORY -The -.Nm -driver was added in -.Fx 6.2 , -.Fx 5.5 -and -.Fx 4.11 . diff --git a/sys/conf/WITHOUT_SOURCELESS_UCODE b/sys/conf/WITHOUT_SOURCELESS_UCODE index e33bcb17e025..ca69a1f4a134 100644 --- a/sys/conf/WITHOUT_SOURCELESS_UCODE +++ b/sys/conf/WITHOUT_SOURCELESS_UCODE @@ -1,41 +1,40 @@ # # WITHOUT_SOURCELESS_UCODE -- Disable drivers that include sourceless # microcode. # # $FreeBSD$ nodevice bce nodevice fxp nodevice ispfw nodevice mwlfw nodevice ralfw nodevice rtwnfw nodevice runfw nodevice sf nodevice ti nodevice txp -nodevice ce nodevice cp nodevice ipwfw nodevice iwifw nodevice iwmfw nodevice iwnfw nodevice wpifw # drm nodevice mga nodevice r128 nodevice radeon # sound nodevice csa nodevice ds1 nodevice maestro3 # usb nodevice rsu nodevice rsufw nodevice rum nodevice uath nodevice zyd nodevice kue diff --git a/sys/conf/files.i386 b/sys/conf/files.i386 index d35a00829f4d..3c398017af7e 100644 --- a/sys/conf/files.i386 +++ b/sys/conf/files.i386 @@ -1,179 +1,175 @@ # This file tells config what files go into building a kernel, # files marked standard are always included. # # $FreeBSD$ # # common files stuff between i386 and amd64 include "conf/files.x86" # The long compile-with and dependency lines are required because of # limitations in config: backslash-newline doesn't work in strings, and # dependency lines other than the first are silently ignored. # cddl/dev/dtrace/i386/dtrace_asm.S optional dtrace compile-with "${DTRACE_S}" cddl/dev/dtrace/i386/dtrace_subr.c optional dtrace compile-with "${DTRACE_C}" crypto/aesni/aeskeys_i386.S optional aesni crypto/des/arch/i386/des_enc.S optional netsmb crypto/openssl/i386/aesni-x86.S optional ossl crypto/openssl/i386/chacha-x86.S optional ossl crypto/openssl/i386/poly1305-x86.S optional ossl crypto/openssl/i386/sha1-586.S optional ossl crypto/openssl/i386/sha256-586.S optional ossl crypto/openssl/i386/sha512-586.S optional ossl dev/agp/agp_ali.c optional agp dev/agp/agp_amd.c optional agp dev/agp/agp_amd64.c optional agp dev/agp/agp_ati.c optional agp dev/agp/agp_i810.c optional agp dev/agp/agp_intel.c optional agp dev/agp/agp_nvidia.c optional agp dev/agp/agp_sis.c optional agp dev/agp/agp_via.c optional agp -dev/ce/ceddk.c optional ce -dev/ce/if_ce.c optional ce -dev/ce/tau32-ddk.c optional ce \ - compile-with "${NORMAL_C} ${NO_WCONSTANT_CONVERSION} ${NO_WMISLEADING_INDENTATION} ${NO_WUNUSED_BUT_SET_VARIABLE}" dev/glxiic/glxiic.c optional glxiic dev/glxsb/glxsb.c optional glxsb dev/glxsb/glxsb_hash.c optional glxsb dev/hyperv/vmbus/i386/hyperv_machdep.c optional hyperv dev/le/if_le_isa.c optional le isa dev/nctgpio/nctgpio.c optional nctgpio dev/nfe/if_nfe.c optional nfe pci dev/ntb/if_ntb/if_ntb.c optional if_ntb dev/ntb/ntb_transport.c optional ntb_transport | if_ntb dev/ntb/ntb.c optional ntb | ntb_transport | if_ntb | ntb_hw_amd | ntb_hw_intel | ntb_hw_plx | ntb_hw dev/ntb/ntb_if.m optional ntb | ntb_transport | if_ntb | ntb_hw_amd | ntb_hw_intel | ntb_hw_plx | ntb_hw dev/ntb/ntb_hw/ntb_hw_amd.c optional ntb_hw_amd | ntb_hw dev/ntb/ntb_hw/ntb_hw_intel.c optional ntb_hw_intel | ntb_hw dev/ntb/ntb_hw/ntb_hw_plx.c optional ntb_hw_plx | ntb_hw dev/ntb/test/ntb_tool.c optional ntb_tool dev/nvram/nvram.c optional nvram isa dev/ofw/ofw_pcib.c optional fdt pci dev/pcf/pcf_isa.c optional pcf dev/random/ivy.c optional rdrand_rng !random_loadable dev/random/nehemiah.c optional padlock_rng !random_loadable dev/sbni/if_sbni.c optional sbni dev/sbni/if_sbni_isa.c optional sbni isa dev/sbni/if_sbni_pci.c optional sbni pci dev/speaker/spkr.c optional speaker dev/superio/superio.c optional superio isa dev/syscons/scvesactl.c optional sc vga vesa dev/syscons/scvgarndr.c optional sc vga dev/tpm/tpm.c optional tpm dev/tpm/tpm_acpi.c optional tpm acpi dev/tpm/tpm_isa.c optional tpm isa dev/uart/uart_cpu_x86.c optional uart dev/viawd/viawd.c optional viawd dev/vmd/vmd.c optional vmd dev/acpi_support/acpi_wmi_if.m standard dev/wbwd/wbwd.c optional wbwd i386/acpica/acpi_machdep.c optional acpi i386/acpica/acpi_wakeup.c optional acpi acpi_wakecode.o optional acpi \ dependency "$S/i386/acpica/acpi_wakecode.S assym.inc" \ compile-with "${NORMAL_S}" \ no-obj no-implicit-rule before-depend \ clean "acpi_wakecode.o" acpi_wakecode.bin optional acpi \ dependency "acpi_wakecode.o" \ compile-with "${OBJCOPY} -S -O binary acpi_wakecode.o ${.TARGET}" \ no-obj no-implicit-rule before-depend \ clean "acpi_wakecode.bin" acpi_wakecode.h optional acpi \ dependency "acpi_wakecode.bin" \ compile-with "file2c -sx 'static char wakecode[] = {' '};' < acpi_wakecode.bin > ${.TARGET}" \ no-obj no-implicit-rule before-depend \ clean "acpi_wakecode.h" acpi_wakedata.h optional acpi \ dependency "acpi_wakecode.o" \ compile-with '${NM} -n --defined-only acpi_wakecode.o | while read offset dummy what; do echo "#define $${what} 0x$${offset}"; done > ${.TARGET}' \ no-obj no-implicit-rule before-depend \ clean "acpi_wakedata.h" # i386/bios/smapi.c optional smapi i386/bios/smapi_bios.S optional smapi #i386/i386/apic_vector.S optional apic i386/i386/bios.c standard i386/i386/bioscall.S standard i386/i386/bpf_jit_machdep.c optional bpf_jitter i386/i386/copyout.c standard i386/i386/db_disasm.c optional ddb i386/i386/db_interface.c optional ddb i386/i386/db_trace.c optional ddb i386/i386/exec_machdep.c standard i386/i386/elan-mmcr.c optional cpu_elan | cpu_soekris i386/i386/elf_machdep.c standard i386/i386/exception.S standard i386/i386/gdb_machdep.c optional gdb i386/i386/geode.c optional cpu_geode i386/i386/in_cksum_machdep.c optional inet | inet6 i386/i386/initcpu.c standard i386/i386/io.c optional io i386/i386/k6_mem.c optional mem i386/i386/locore.S standard no-obj i386/i386/longrun.c optional cpu_enable_longrun i386/i386/machdep.c standard i386/i386/mem.c optional mem i386/i386/minidump_machdep.c standard i386/i386/minidump_machdep_pae.c standard i386/i386/minidump_machdep_nopae.c standard i386/i386/mp_clock.c optional smp i386/i386/mp_machdep.c optional smp i386/i386/mpboot.S optional smp i386/i386/npx.c standard i386/i386/perfmon.c optional perfmon i386/i386/pmap_base.c standard i386/i386/pmap_nopae.c standard i386/i386/pmap_pae.c standard i386/i386/ptrace_machdep.c standard i386/i386/sigtramp.S standard i386/i386/support.S standard i386/i386/swtch.S standard i386/i386/sys_machdep.c standard i386/i386/trap.c standard i386/i386/uio_machdep.c standard i386/i386/vm86.c standard i386/i386/vm_machdep.c standard i386/pci/pci_cfgreg.c optional pci i386/pci/pci_pir.c optional pci isa/syscons_isa.c optional sc isa/vga_isa.c optional vga kern/imgact_aout.c optional compat_aout kern/subr_sfbuf.c standard libkern/divdi3.c standard libkern/ffsll.c standard libkern/flsll.c standard libkern/memcmp.c standard libkern/memset.c standard libkern/moddi3.c standard libkern/qdivrem.c standard libkern/strlen.c standard libkern/ucmpdi2.c standard libkern/udivdi3.c standard libkern/umoddi3.c standard # # x86 real mode BIOS support, required by dpms/pci/vesa # compat/x86bios/x86bios.c optional x86bios | dpms | pci | vesa # Common files where we currently configure the system differently, but perhaps shouldn't # config(8) doesn't have a way to force standard options, so we've been inconsistent # about marking non-optional things 'standard'. x86/acpica/madt.c optional acpi apic x86/cpufreq/smist.c optional cpufreq x86/isa/atpic.c optional atpic x86/isa/elcr.c optional atpic | apic x86/isa/isa.c optional isa x86/isa/isa_dma.c optional isa x86/x86/io_apic.c optional apic x86/x86/local_apic.c optional apic x86/x86/mptable.c optional apic x86/x86/mptable_pci.c optional apic pci x86/x86/msi.c optional apic pci # Clock calibration subroutine; uses floating-point arithmetic subr_clockcalib.o standard \ dependency "$S/kern/subr_clockcalib.c" \ compile-with "${CC} -c ${CFLAGS:C/^-O2$/-O3/:N-nostdinc} ${WERROR} -m80387 ${.IMPSRC}" \ no-implicit-rule \ clean "subr_clockcalib.o" diff --git a/sys/dev/ce/ceddk.c b/sys/dev/ce/ceddk.c deleted file mode 100644 index 569476040a93..000000000000 --- a/sys/dev/ce/ceddk.c +++ /dev/null @@ -1,1521 +0,0 @@ -/* - * Middle-level code for Cronyx Tau32-PCI adapters. - * - * Copyright (C) 2004 Cronyx Engineering - * Copyright (C) 2004 Roman Kurakin - * - * This software is distributed with NO WARRANTIES, not even the implied - * warranties for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. - * - * Authors grant any other persons or organisations a permission to use, - * modify and redistribute this software in source and binary forms, - * as long as this message is kept with the software, all derivative - * works or modified versions. - * - * $Cronyx: ceddk.c,v 1.2.6.2 2005/11/17 16:04:13 rik Exp $ - */ - -#include -__FBSDID("$FreeBSD$"); - -#include -#include - -#undef CE_DDK_DEBUG_ENABLED -#ifdef CE_DDK_DEBUG_ENABLED -#ifdef __FreeBSD__ -# define CE_DDK_DEBUG(b,c,s) \ - do { \ - if (c) { \ - printf("ce%d-%d: ",(b)->num,(c)->num); \ - } else { \ - printf("ce%d-*: ",(b)->num); \ - } \ - printf s; \ - } while (0) -#else -# define CE_DDK_DEBUG(b,c,s) do {} while (0) -#endif -#else -# define CE_DDK_DEBUG(b,c,s) do {} while (0) -#endif - -#if 0 -#define ENTER() \ - static int enter=0; \ - do { \ - enter++; \ - printf ("%s: >> enter (%16llx) %d\n", __FUNCTION__, rdtsc (), enter); \ - } while (0) - -#define EXIT(val...) \ - do { \ - enter--; \ - printf ("%s: << exit (%16llx) %d line %d\n", __FUNCTION__, rdtsc (), enter, __LINE__); \ - return val; \ - } while (0) -#else -#define ENTER() \ - do {} while (0) - -#define EXIT(val...) \ - do {return val;} while (0) -#endif - -#define CE_ENQUEUE(list,item) \ - do { \ - TAU32_UserRequest **last; \ - last = &(list); \ - while (*last) { \ - last = &(*last)->next; \ - } \ - (*last) = (item); \ - (item)->next = NULL; \ - } while (0) - -#define CE_ENQUEUE_HEAD(list,item) \ - do { \ - (item)->next = list; \ - list = item; \ - } while (0) - -#define CE_DEQUEUE(list,item) \ - do { \ - item = list; \ - if (list) { \ - list = (item)->next; \ - } \ - } while (0) - -#define CE_PREREQUEST(b,c,list,item) \ - do { \ - item = list; \ - if (!item) { \ - CE_DDK_DEBUG (b, c, ("Fatal error, no free structs " \ - "for UserRequest (%s:%d)\n", \ - __FUNCTION__, __LINE__)); \ - } \ - } while (0) - -#define CE_DUMP_QUEUE(list) \ - do { \ - TAU32_UserRequest *item; \ - int i = 0; \ - item = list; \ - while (item) { \ - printf ("item%d: %p\n", i, item); \ - item = item->next; \ - i++; \ - } \ - } while (0) - -#define CE_FIND_ITEM(list,item,flag) \ - do { \ - TAU32_UserRequest *citem; \ - flag = 0; \ - for (citem = list; citem; citem = citem->next) { \ - if (citem == item) { \ - flag = 1; \ - break; \ - } \ - } \ - } while (0) - -#define CE_LAST_ITEM(list,item) \ - do { \ - TAU32_UserRequest **last; \ - last = &(list); \ - while ((*last) && (*last)->next) { \ - last = &(*last)->next; \ - } \ - (item) = (*last); \ - } while (0) - -#define CE_ASSERT(a) \ - do { \ - if (!(a)) { \ - printf ("ASSERT: %d %s\n", __LINE__, #a); \ - __asm __volatile ("int $3"); \ - } \ - } while (0) - -static void _ce_set_ts (ce_chan_t *c, unsigned long ts); -static void _ce_submit_configure_e1 (ce_chan_t *c, char *rname); - -#ifdef CE_DDK_DEBUG_ENABLED -static char *ce_err2str (unsigned long err) -{ - switch (err) { - case TAU32_SUCCESSFUL: - return "Successful"; - case TAU32_ERROR_ALLOCATION: - return "Allocation error, not enough tx/rx descriptors"; - case TAU32_ERROR_BUS: - return "PEB could not access to host memory by PCI bus for load/store information"; - case TAU32_ERROR_FAIL: - return "PEB action request failed"; - case TAU32_ERROR_TIMEOUT: - return "PEB action request timeout"; - case TAU32_ERROR_CANCELLED: - return "request has been canceled"; - case TAU32_ERROR_TX_UNDERFLOW: - return "transmission underflow"; - case TAU32_ERROR_TX_PROTOCOL: - return "TX_PROTOCOL"; - case TAU32_ERROR_RX_OVERFLOW: - return "RX_OVERFLOW"; - case TAU32_ERROR_RX_ABORT: - return "RX_ABORT"; - case TAU32_ERROR_RX_CRC: - return "RX_CRC"; - case TAU32_ERROR_RX_SHORT: - return "RX_SHORT"; - case TAU32_ERROR_RX_SYNC: - return "RX_SYNC"; - case TAU32_ERROR_RX_FRAME: - return "RX_FRAME"; - case TAU32_ERROR_RX_LONG: - return "RX_LONG"; - case TAU32_ERROR_RX_SPLIT: - return "frame has splitted between two requests due rx-gap allocation"; - case TAU32_ERROR_RX_UNFIT: - return "frame can't be fit into request buffer"; - case TAU32_ERROR_TSP: - return "ERROR_TSP"; - case TAU32_ERROR_RSP: - return "ERROR_RSP"; - case TAU32_ERROR_INT_OVER_TX: - return "ERROR INT OVER TX"; - case TAU32_ERROR_INT_OVER_RX: - return "ERROR INT OVER RX"; - case TAU32_ERROR_INT_STORM: - return "irq storm"; - case TAU32_ERROR_INT_E1LOST: - return "ERROR_E1LOST"; - default: - return ("Unknown error"); - } -} -#endif - -void ce_set_dtr (ce_chan_t *c, int on) -{ - c->dtr = on?1:0; -} - -void ce_set_rts (ce_chan_t *c, int on) -{ - c->rts = on?1:0; -} - -static void TAU32_CALLBACK_TYPE ce_on_receive - (TAU32_UserContext *pContext, TAU32_UserRequest *req) -{ - ce_buf_item_t *item = (ce_buf_item_t *)req; - ce_chan_t *c; - ce_board_t *b; - unsigned int error; - int len; - - ENTER (); - if (!req || !req->sys) { - EXIT (); - } - - c = (ce_chan_t *)req->sys; - b = c->board; - - len = req->Io.Rx.Received; - error = req->ErrorCode; - - c->rintr++; - if (error == TAU32_SUCCESSFUL) { - if (req->Io.Rx.FrameEnd) { - c->ipkts++; - } else { - CE_DDK_DEBUG (b, c, ("No FrameEnd\n")); - /* probably do something in some cases*/ - } - c->ibytes += len; - if (c->receive) - c->receive (c, item->buf, len); - } else if (error & TAU32_ERROR_BUS) { - c->overrun++; - if (c->error) - c->error (c, CE_OVERRUN); - } else { - CE_DDK_DEBUG (b, c, ("Another receive error: %x\n", error)); - /* Do some processing */ - } - - CE_ASSERT (!req->pInternal); - CE_ENQUEUE (c->rx_queue, req); - while (c->rx_queue) { - CE_DEQUEUE (c->rx_queue, req); - CE_ASSERT (req); - item = (ce_buf_item_t *)req; - req->Command = TAU32_Rx_Data; - req->Io.Rx.Channel = c->num; - req->pCallback = ce_on_receive; - req->Io.Rx.BufferLength = BUFSZ+4; - req->Io.Rx.PhysicalDataAddress = item->phys; - if (!TAU32_SubmitRequest (b->ddk.pControllerObject, req)) { - CE_DDK_DEBUG (b, c, ("RX submition failure\n")); - c->rx_pending--; - CE_ENQUEUE_HEAD (c->rx_queue, req); - break; - } - } - EXIT (); -} - -static void TAU32_CALLBACK_TYPE ce_on_transmit - (TAU32_UserContext *pContext, TAU32_UserRequest *req) -{ - int len; - unsigned int error; - ce_chan_t *c; - ENTER (); - - if (!req || !req->sys) { - EXIT (); - } - - c = (ce_chan_t *)req->sys; - - len = req->Io.Tx.Transmitted; - error = req->ErrorCode; - - c->tintr++; - if (error == TAU32_SUCCESSFUL) { - c->obytes += len; - c->opkts++; - } else if (error & TAU32_ERROR_BUS) { - c->underrun++; - if (c->error) - c->error (c, CE_UNDERRUN); - } else { - CE_DDK_DEBUG (c->board, c, ("Another transmit error: %x\n", - error)); - /* Do some processing */ - } - - CE_ENQUEUE (c->tx_queue, req); - c->tx_pending--; - - if (c->transmit) - c->transmit (c, 0, len); - EXIT (); -} - -int ce_transmit_space (ce_chan_t *c) -{ - return c->tx_pending < (TAU32_IO_QUEUE); -} - -int ce_send_packet (ce_chan_t *c, unsigned char *buf, int len, void *tag) -{ - TAU32_UserRequest *req; - ce_buf_item_t *item; - - ENTER (); - - if (!ce_transmit_space (c)) { - EXIT (-1); - } - - if (len <= 0 || len > BUFSZ) { - EXIT (-2); - } - - CE_DEQUEUE (c->tx_queue, req); - CE_ASSERT (req); - item = (ce_buf_item_t *)req; - - if (buf != item->buf) - memcpy (item->buf, buf, len); - - CE_ASSERT (!req->pInternal); - - req->Command = TAU32_Tx_Data | TAU32_Tx_FrameEnd; - req->Io.Tx.Channel = c->num; - req->pCallback = ce_on_transmit; - req->Io.Tx.DataLength = len; - req->Io.Tx.PhysicalDataAddress = item->phys; - c->tx_pending++; - if (!TAU32_SubmitRequest (c->board->ddk.pControllerObject, req)) { - CE_DDK_DEBUG (c->board, c, ("Can't submit packet for " - "transmission\n")); - CE_ENQUEUE_HEAD (c->tx_queue, req); - c->tx_pending--; - EXIT (-3); - } - EXIT (0); -} - -static void TAU32_CALLBACK_TYPE ce_on_config - (TAU32_UserContext *pContext, TAU32_UserRequest *req) -{ - ce_board_t *b = (ce_board_t *) pContext; - ENTER (); - b->cr.pending--; - if (req->ErrorCode) - CE_DDK_DEBUG (b, (ce_chan_t*)0, ("Config request failure: %lx\n", - req->ErrorCode)); - EXIT (); -} - -static void TAU32_CALLBACK_TYPE ce_on_config_stop - (TAU32_UserContext *pContext, TAU32_UserRequest *req) -{ - int i, first; - TAU32_UserRequest *rreq; - ce_board_t *b = (ce_board_t *) pContext; - ce_chan_t *c = b->chan + req->Io.ChannelNumber; - - ENTER (); - /* Stop all requests */ - CE_ASSERT (0);/* Buggy */ - CE_LAST_ITEM (c->rx_queue, rreq); - /* A little hacky, try to guess which is a first */ - first = rreq ? (c->rx_item - (ce_buf_item_t *)rreq) + 1 : 0; - for (i = 0; i < TAU32_IO_QUEUE; i++) { - int is_pending; - rreq = &c->rx_item[(i + first) % TAU32_IO_QUEUE].req; - CE_FIND_ITEM (c->rx_queue, rreq, is_pending); - if (!is_pending) - continue; - TAU32_CancelRequest (b->ddk.pControllerObject, rreq, 1); - rreq->Command = TAU32_Rx_Data; - rreq->Io.Rx.Channel = c->num; - rreq->Io.Rx.BufferLength = BUFSZ+4; - rreq->Io.Rx.PhysicalDataAddress = ((ce_buf_item_t *)rreq)->phys; - c->rx_pending++; - if (!TAU32_SubmitRequest (b->ddk.pControllerObject, rreq)) { - CE_ASSERT (0);/* Buggy */ - c->rx_pending--; - break; - } - } - - c->tx_pending = 0; -/* c->rx_pending = 0;*/ - EXIT (); -} - -static int ce_cfg_submit (ce_board_t *b) -{ - TAU32_UserRequest *req; - ENTER (); - - CE_DEQUEUE (b->cr.queue, req); - CE_ASSERT (req); - CE_ASSERT (!req->pInternal); - - req->pCallback = ce_on_config; - b->cr.pending++; - - CE_DDK_DEBUG (b, (ce_chan_t *)0, ("config request pending: %d\n", - b->cr.pending)); - - if (!TAU32_SubmitRequest (b->ddk.pControllerObject, req)) { - CE_ENQUEUE_HEAD (b->cr.queue, req); - CE_DDK_DEBUG (b, (ce_chan_t *)0, ("Fail to submit config request\n")); - b->cr.pending--; - EXIT (0); - } - - EXIT (1); -} - -void ce_init_board (ce_board_t *b) -{ - int i; - - b->cr.queue = NULL; - - for (i = 0; i < CONFREQSZ; i++) { - CE_ENQUEUE (b->cr.queue, b->cr.req + i); - } - - b->chan[0].config = TAU32_ais_on_loss; - - /* lloop = off, rloop = off */ - b->chan[0].config |= TAU32_LineNormal; - b->chan[0].lloop = 0; - b->chan[0].rloop = 0; - - /* unfram=off, scrambler=off, use16=off, crc4=off, - higain=off, monitor=off*/ - b->chan[0].config |= (b->ddk.Interfaces == 2 ? TAU32_framed_cas_cross : - TAU32_framed_cas_set); - b->chan[0].unfram = 0; - b->chan[0].scrambler = 0; - b->chan[0].use16 = 0; - b->chan[0].crc4 = 0; - b->chan[0].higain = 0; - b->chan[0].monitor = 0; - - if (b->ddk.Interfaces == 2) { - b->chan[1].config = TAU32_ais_on_loss; - /* lloop = off, rloop = off */ - b->chan[1].config |= TAU32_LineNormal; - /* unfram=off, scrambler=off, use16=off, crc4=off, - higain=off, monitor=off*/ - b->chan[1].config |= TAU32_framed_cas_cross; - b->chan[1].unfram = 0; - b->chan[1].scrambler = 0; - b->chan[1].use16 = 0; - b->chan[1].crc4 = 0; - b->chan[1].higain = 0; - b->chan[1].monitor = 0; - } - - for (i = 0; i < NCHAN; i++) { - /* Chan0 ts=1-15,17-31, Chan1 ts=1-2 */ - b->chan[i].type = i < b->ddk.Interfaces ? T_E1 : T_DATA; - b->chan[i].ts = (i == 0 ? 0xfffefffe : - (i != 1 ? 0 : - (b->ddk.Interfaces == 2 ? 0x6: 0))); - b->chan[i].dir = (b->ddk.Interfaces == 2) ? (i%2) : 0; - b->chan[i].mtu = 1504; - } -#if 0 - /* c->num == 0 */ - req = b->cr.queue; - /* We must have some here */ - CE_ASSERT (req); - req->Command = TAU32_Configure_E1; - req->Io.InterfaceConfig.Interface = TAU32_E1_A; - req->Io.InterfaceConfig.Config = b->chan[0].config; - req->Io.InterfaceConfig.UnframedTsMask = 0; - if (!ce_cfg_submit (b)) { - CE_DDK_DEBUG (b, b->chan + 0, - ("Submit request failure, line %d\n", - __LINE__)); - } - /* c->num == 1 */ - if (b->ddk.Interfaces == 2) { - req = b->cr.queue; - /* We must have some here */ - CE_ASSERT (req); - req->Command = TAU32_Configure_E1; - req->Io.InterfaceConfig.Interface = TAU32_E1_B; - req->Io.InterfaceConfig.Config = b->chan[1].config; - req->Io.InterfaceConfig.UnframedTsMask = 0; - if (!ce_cfg_submit (b)) { - CE_DDK_DEBUG (b, b->chan + 1, - ("Submit request failure, line %d\n", - __LINE__)); - } - } -#endif - /* Set default cross matrix */ - for (i = 0; i < 32; i++) { - /* -X-> Peb */ - b->dxc[i] = TAU32_CROSS_OFF; - /* Link2 -> Link1 */ - b->dxc[i + 32] = i + 64; - /* Link1 -> Link2 */ - b->dxc[i + 64] = i + 32; - } - - /* We have only mux mode for now. Later we will also have cross mode */ - b->mux = 1; -} - -void ce_start_chan (ce_chan_t *c, int tx, int rx, ce_buf_t *cb, - unsigned long phys) -{ - int i; - ce_board_t *b = c->board; - -/* c->config = TAU32_ais_on_loss | TAU32_framed_cas_cross;*/ - - if (cb) { - CE_DDK_DEBUG (b, c, ("ce_buf_t virt:%p phys:%p\n", cb, - (void *)phys)); - c->tx_item = cb->tx_item; - c->rx_item = cb->rx_item; - c->tx_queue = NULL; - c->rx_queue = NULL; - for (i = 0; i < TAU32_IO_QUEUE; i++) { - c->tx_item[i].phys = phys + - ((char *)(c->tx_item[i].buf)-(char *)cb); - c->rx_item[i].phys = phys + - ((char *)(c->rx_item[i].buf)-(char *)cb); - cb->tx_item[i].req.sys = c; - cb->rx_item[i].req.sys = c; - CE_DDK_DEBUG (b, c, ("tx_item[%d].buf virt:%p phys:%p\n", - i, c->tx_item[i].buf, - (void *)c->tx_item[i].phys)); - CE_DDK_DEBUG (b, c, ("rx_item[%d].buf virt:%p phys:%p\n", - i, c->rx_item[i].buf, - (void *)c->rx_item[i].phys)); - CE_ENQUEUE (c->rx_queue, &c->rx_item[i].req); - CE_ENQUEUE (c->tx_queue, &c->tx_item[i].req); - } - c->tx_pending = 0; - c->rx_pending = 0; - } - - /* submit rx */ - while (1) { - ce_buf_item_t *item; - TAU32_UserRequest *req; - - CE_DEQUEUE (c->rx_queue, req); - if (!req) - break; - item = (ce_buf_item_t *) req; - CE_ASSERT (c->rx_pending < TAU32_IO_QUEUE); - req->Command = TAU32_Rx_Data; - req->Io.Rx.Channel = c->num; - req->pCallback = ce_on_receive; - req->Io.Rx.BufferLength = c->mtu + (c->phony ? 0 : 4); - req->Io.Rx.PhysicalDataAddress = item->phys; - c->rx_pending++; - if (!TAU32_SubmitRequest (b->ddk.pControllerObject, req)) { - CE_DDK_DEBUG (b, c, ("Faild to submit rx request\n")); - /*XXXRIK: shouldn't happen, but ... */ - CE_ASSERT (0); - c->rx_pending--; - break; - } - } - - if (tx | rx) { - TAU32_UserRequest *req; - CE_PREREQUEST (b, c, b->cr.queue, req); - if (!req) - return; - req->Command = TAU32_Configure_Commit | - (tx ? TAU32_Tx_Start : 0) | - (rx ? TAU32_Rx_Start : 0); - req->Io.ChannelNumber = c->num; - if (!ce_cfg_submit (b)) { - CE_DDK_DEBUG (b, c, ("Can't start chan\n")); - /* Do some error processing */ - return; - } - } - - /* If we run just after ce_board_init we have prope values. - * Else I hope you didn't set ts to incorrect value. - */ - _ce_set_ts (c, c->ts); - if (c->num < b->ddk.Interfaces) { - /* The same for other modes. We don't check them. - * We hope that config is correctly set. Just as we have - * after ce_board_init. If channel was stoped we hope that - * it's config was not broken just after it and we didn't - * brake it before start. - */ - _ce_submit_configure_e1 (c, "start_init"); - } -} - -void ce_stop_chan (ce_chan_t *c) -{ - ce_board_t *b = c->board; - TAU32_UserRequest *req; - CE_DEQUEUE (b->cr.queue, req); - - /* XXXRIK: This function should be for completeness, but for now I - * don't use it. I just started to write and haven't finished it yet. - * It is VERY BUGGY!!! Do not use it. If you really need - * it ask me to fix it or rewrite it by yourself. - * Note: most buggy part of it in ce_on_config_stop! - */ - if (!req) { - CE_DDK_DEBUG (b, c, ("Fatal error, no free structs for " - "UserRequest (%s:%d)\n", __FUNCTION__, __LINE__)); - return; - } -// req->Command = TAU32_Configure_Commit | -// TAU32_Tx_Stop | TAU32_Rx_Stop; - req->Command = 0; - req->Io.ChannelNumber = c->num; - req->pCallback = ce_on_config_stop; - b->cr.pending++; - - if (!TAU32_SubmitRequest (b->ddk.pControllerObject, req)) { - CE_ENQUEUE_HEAD (b->cr.queue, req); - CE_DDK_DEBUG (b, c, ("Can't stop chan\n")); - b->cr.pending--; - } -} - -void ce_register_transmit (ce_chan_t *c, - void (*func) (ce_chan_t*, void*, int)) -{ - c->transmit = func; -} - -void ce_register_receive (ce_chan_t *c, - void (*func) (ce_chan_t*, unsigned char*, int)) -{ - c->receive = func; -} - -void ce_register_error (ce_chan_t *c, - void (*func) (ce_chan_t*, int)) -{ - c->error = func; -} - -void TAU32_CALLBACK_TYPE ce_error_callback (TAU32_UserContext *pContext, - int Item, unsigned NotifyBits) -{ - ce_board_t *b = (ce_board_t *) pContext; - ENTER (); - if (NotifyBits & (TAU32_ERROR_FAIL | TAU32_ERROR_TIMEOUT - | TAU32_ERROR_INT_OVER_TX | TAU32_ERROR_INT_OVER_RX - | TAU32_ERROR_INT_STORM)) { - /* Fatal: adapter failure, need reset & restart */ - /* RIKXXX: probably I should add CE_FAILURE for ce_error */ - CE_DDK_DEBUG (b, (ce_chan_t *)0, ("Err, disable interrupts: %s\n", - ce_err2str (NotifyBits))); -/* TAU32_DisableInterrupts (b->ddk.pControllerObject);*/ - EXIT (); - } - if (Item >= 0) { - /* channel error */ - ce_chan_t *c = b->chan + Item; - if (NotifyBits & TAU32_ERROR_TX_UNDERFLOW) { - c->underrun++; - if (c->error) - c->error (c, CE_UNDERRUN); - } - if (NotifyBits & TAU32_ERROR_RX_OVERFLOW) { - c->overrun++; - if (c->error) - c->error (c, CE_OVERFLOW); - } - if (NotifyBits & (TAU32_ERROR_RX_FRAME | TAU32_ERROR_RX_ABORT | - TAU32_ERROR_RX_SHORT | TAU32_ERROR_RX_LONG | - TAU32_ERROR_RX_SYNC | TAU32_ERROR_RX_SPLIT | - TAU32_ERROR_RX_UNFIT)) { - c->frame++; - CE_DDK_DEBUG (b, c, ("Frame error: %x\n", NotifyBits)); - if (c->error) - c->error (c, CE_FRAME); - } - if(NotifyBits & TAU32_ERROR_RX_CRC) { - c->crc++; - if (c->error) - c->error (c, CE_CRC); - } - } else { - CE_DDK_DEBUG (b, (ce_chan_t *)0, ("Another error: %x\n", - NotifyBits)); - /* Adapter error, do smth */ - } - EXIT (); -} - -void TAU32_CALLBACK_TYPE ce_status_callback(TAU32_UserContext *pContext, - int Item, unsigned NotifyBits) -{ - ce_board_t *b = (ce_board_t *) pContext; - ENTER (); - if(Item >= 0) { - /* e1 status */ - ce_chan_t *c = b->chan + Item; - c->acc_status |= b->ddk.InterfacesInfo[Item].Status; -/* CE_DDK_DEBUG (b, c, ("Current status: %x\n", c->acc_status));*/ - } else { - CE_DDK_DEBUG (b, (ce_chan_t *)0, ("Another status: %x\n", NotifyBits)); - /* Adapter status, do smth. */ - } - EXIT (); -} - -int ce_get_cd (ce_chan_t *c) -{ - unsigned int e1status = c->board->ddk.InterfacesInfo[c->dir].Status; - - return (c->ts && !(e1status & (TAU32_RCL | TAU32_E1OFF))); -} - -int ce_get_cts (ce_chan_t *c) -{ - return 0; -} - -int ce_get_dsr (ce_chan_t *c) -{ - return 0; -} - -void ce_e1_timer (ce_chan_t *c) -{ - unsigned bpv, fas, crc4, ebit, pcv, oof, css; - unsigned int acc_status; - ce_board_t *b = c->board; - TAU32_E1_State *state; - - if (c->num >= b->ddk.Interfaces) - return; - - state = &b->ddk.InterfacesInfo[c->num]; - acc_status = c->acc_status; - - /* Clear acc_status */ - c->acc_status = b->ddk.InterfacesInfo[c->num].Status; - - /* Count seconds. - * During the first second after the channel startup - * the status registers are not stable yet, - * we will so skip the first second. */ - ++c->cursec; - if (! c->totsec && c->cursec <= 1) - return; - - c->status = 0; - - /* Compute the SNMP-compatible channel status. */ - oof = 0; - - if (acc_status & TAU32_RCL) - c->status |= ESTS_LOS; /* loss of signal */ - if (acc_status & TAU32_RUA1) - c->status |= ESTS_AIS; /* receiving all ones */ - - /* Get error counters. */ - bpv = state->RxViolations; - fas = 0; - crc4 = 0; - ebit = 0; - css = 0; - - if (! c->unfram) { - if (! c->use16 && (acc_status & TAU32_RSA1)) - c->status |= ESTS_AIS16; /* signaling all ones */ - if (! c->use16 && (acc_status & TAU32_RDMA)) - c->status |= ESTS_FARLOMF; /* alarm in timeslot 16 */ - if (acc_status & TAU32_RRA) - c->status |= ESTS_FARLOF; /* far loss of framing */ - - if (acc_status & TAU32_RFAS) { - c->status |= ESTS_LOF; /* loss of framing */ - ++oof; /* out of framing */ - } - if ((! c->use16 && (acc_status & TAU32_RCAS)) || - (c->crc4 && (acc_status & TAU32_RCRC4))) { - c->status |= ESTS_LOMF; /* loss of multiframing */ - ++oof; /* out of framing */ - } - fas = state->FasErrors; - crc4 = state->Crc4Errors; - ebit = state->FarEndBlockErrors; - - /* Controlled slip second -- any slip event. */ - css = state->TransmitSlips + state->ReceiveSlips; - } - - /* Clear state */ - state->RxViolations = 0; - state->FasErrors = 0; - state->Crc4Errors = 0; - state->FarEndBlockErrors = 0; - state->TransmitSlips = 0; - state->ReceiveSlips = 0; - - if (c->status & ESTS_LOS) - c->status = ESTS_LOS; - else if (c->status & ESTS_AIS) - c->status = ESTS_AIS; - else if (c->status & ESTS_LOF) - c->status = ESTS_LOF; - else if (c->status & ESTS_LOMF) - c->status &= ~(ESTS_FARLOMF | ESTS_AIS16); - - if (! c->status) - c->status = ESTS_NOALARM; - - c->currnt.bpv += bpv; - c->currnt.fse += fas; - if (c->crc4) { - c->currnt.crce += crc4; - c->currnt.rcrce += ebit; - } - - /* Path code violation is frame sync error if CRC4 disabled, - * or CRC error if CRC4 enabled. */ - pcv = fas; - if (c->crc4) - pcv += crc4; - - /* Unavaiable second -- receiving all ones, or - * loss of carrier, or loss of signal. */ - if (acc_status & (TAU32_RUA1 | TAU32_RCL)) - /* Unavailable second -- no other counters. */ - ++c->currnt.uas; - else { - /* Line errored second -- any BPV. */ - if (bpv) - ++c->currnt.les; - - /* Errored second -- any PCV, or out of frame sync, - * or any slip events. */ - if (pcv || oof || css) - ++c->currnt.es; - - /* Severely errored framing second -- out of frame sync. */ - if (oof) - ++c->currnt.oofs; - - /* Severely errored seconds -- - * 832 or more PCVs, or 2048 or more BPVs. */ - if (bpv >= 2048 || pcv >= 832) - ++c->currnt.ses; - else { - /* Bursty errored seconds -- - * no SES and more than 1 PCV. */ - if (pcv > 1) - ++c->currnt.bes; - - /* Collect data for computing - * degraded minutes. */ - ++c->degsec; - c->degerr += bpv + pcv; - } - } - - /* Degraded minutes -- having error rate more than 10e-6, - * not counting unavailable and severely errored seconds. */ - if (c->cursec % 60 == 0) { - if (c->degerr > c->degsec * 2048 / 1000) - ++c->currnt.dm; - c->degsec = 0; - c->degerr = 0; - } - - /* Rotate statistics every 15 minutes. */ - if (c->cursec > 15*60) { - int i; - - for (i=47; i>0; --i) - c->interval[i] = c->interval[i-1]; - c->interval[0] = c->currnt; - - /* Accumulate total statistics. */ - c->total.bpv += c->currnt.bpv; - c->total.fse += c->currnt.fse; - c->total.crce += c->currnt.crce; - c->total.rcrce += c->currnt.rcrce; - c->total.uas += c->currnt.uas; - c->total.les += c->currnt.les; - c->total.es += c->currnt.es; - c->total.bes += c->currnt.bes; - c->total.ses += c->currnt.ses; - c->total.oofs += c->currnt.oofs; - c->total.css += c->currnt.css; - c->total.dm += c->currnt.dm; - c->currnt.bpv = 0; - c->currnt.fse = 0; - c->currnt.crce = 0; - c->currnt.rcrce = 0; - c->currnt.uas = 0; - c->currnt.les = 0; - c->currnt.es = 0; - c->currnt.bes = 0; - c->currnt.ses = 0; - c->currnt.oofs = 0; - c->currnt.css = 0; - c->currnt.dm = 0; - - c->totsec += c->cursec; - c->cursec = 0; - } -} - -void ce_set_baud (ce_chan_t *c, unsigned long baud) -{ - TAU32_UserRequest *req; - ce_board_t *b = c->board; - unsigned long cfg = c->config & ~TAU32_framing_mode_mask; - unsigned long ts; - unsigned long kbps = (baud + 32000) / 64000 * 64; - - if (!c->unfram || c->num != 0 || - baud == c->baud || b->cr.pending >= CONFREQSZ) - return; - - if (!kbps || kbps > 1024) { - ts = 0xffffffffUL; - cfg |= TAU32_unframed_2048; - } else if (kbps > 512) { - ts = 0x0000ffffUL; - cfg |= TAU32_unframed_1024; - } else if (kbps > 256) { - ts = 0x000000ffUL; - cfg |= TAU32_unframed_512; - } else if (kbps > 128) { - ts = 0x0000000fUL; - cfg |= TAU32_unframed_256; - } else if (kbps > 64) { - ts = 0x00000003UL; - cfg |= TAU32_unframed_128; - } else { - ts = 0x00000001UL; - cfg |= TAU32_unframed_64; - } - - /* _ce_set_ts () will set proper baud */ - _ce_set_ts (c, ts); - CE_PREREQUEST (b, c, b->cr.queue, req); - if (!req) - return; - req->Command = TAU32_Configure_E1; - req->Io.InterfaceConfig.Interface = TAU32_E1_A; - req->Io.InterfaceConfig.Config = cfg; - req->Io.InterfaceConfig.UnframedTsMask = ts; - if (ce_cfg_submit (b)) { - c->baud = baud; - c->ts = ts; - c->config = cfg; - } -} - -void ce_set_lloop (ce_chan_t *c, unsigned char on) -{ - TAU32_UserRequest *req; - unsigned long cfg = c->config & ~(TAU32_line_mode_mask | TAU32_ais_on_loss); - ce_board_t *b = c->board; - - if (c->num >= b->ddk.Interfaces || b->cr.pending >= CONFREQSZ) - return; - on = on ? 1 : 0; - if (on == c->lloop) - return; - - cfg |= on ? TAU32_LineLoopInt : (TAU32_LineNormal | TAU32_ais_on_loss); - CE_PREREQUEST (b, c, b->cr.queue, req); - if (!req) - return; - req->Command = TAU32_Configure_E1; - req->Io.InterfaceConfig.Interface = c->num ? TAU32_E1_B : TAU32_E1_A; - req->Io.InterfaceConfig.Config = cfg; - req->Io.InterfaceConfig.UnframedTsMask = c->ts; - CE_DDK_DEBUG (b, c, ("Submit lloop\n")); - if (ce_cfg_submit (b)) { - c->lloop = on ? 1 : 0; - c->config = cfg; - } -} - -void ce_set_rloop (ce_chan_t *c, unsigned char on) -{ - TAU32_UserRequest *req; - unsigned long cfg = c->config & ~TAU32_line_mode_mask; - ce_board_t *b = c->board; - - if (c->num >= b->ddk.Interfaces || b->cr.pending >= CONFREQSZ) - return; - on = on ? 1 : 0; - if (on == c->rloop) - return; - - cfg |= on ? TAU32_LineLoopExt : TAU32_LineNormal; - CE_PREREQUEST (b, c, b->cr.queue, req); - if (!req) - return; - req->Command = TAU32_Configure_E1; - req->Io.InterfaceConfig.Interface = c->num ? TAU32_E1_B : TAU32_E1_A; - req->Io.InterfaceConfig.Config = cfg; - req->Io.InterfaceConfig.UnframedTsMask = c->ts; - CE_DDK_DEBUG (b, c, ("Submit rloop\n")); - if (ce_cfg_submit (b)) { - c->rloop = on ? 1 : 0; - c->config = cfg; - } -} - -void ce_set_higain (ce_chan_t *c, unsigned char on) -{ - TAU32_UserRequest *req; - unsigned long cfg = c->config & ~TAU32_higain; - ce_board_t *b = c->board; - - if (c->num >= b->ddk.Interfaces || b->cr.pending >= CONFREQSZ) - return; - on = on ? 1 : 0; - if (on == c->higain) - return; - - cfg |= on ? TAU32_higain : 0; - CE_PREREQUEST (b, c, b->cr.queue, req); - if (!req) - return; - req->Command = TAU32_Configure_E1; - req->Io.InterfaceConfig.Interface = c->num ? TAU32_E1_B : TAU32_E1_A; - req->Io.InterfaceConfig.Config = cfg; - req->Io.InterfaceConfig.UnframedTsMask = c->ts; - CE_DDK_DEBUG (b, c, ("Submit higain\n")); - if (ce_cfg_submit (b)) { - c->higain = on ? 1 : 0; - c->config = cfg; - } -} - -static void _ce_set_ts (ce_chan_t *c, unsigned long ts) -{ - TAU32_UserRequest *req; - ce_board_t *b = c->board; - unsigned long mask = 0, omask = 0; - int nts = 0, ots = 0, pts = 0; - int i, k; - - if (b->cr.pending >= CONFREQSZ) - return; - - /* - * pts - number of busy "peb" ts - * ots - current (old) busy ts - * nts - new busy ts - */ - for (i = 0; i < 32; i++) { - if (c->ts & (1ul << i)) - ots++; - if (ts & (1ul << i)) - nts++; - if (b->dxc[i] != TAU32_CROSS_OFF) - pts++; - } - - CE_DDK_DEBUG (b, c, ("pts: %d ots: %d nts: %d ts: %lx\n", pts, ots, nts, - ts)); - /* 32 - all busy + my old busy == free */ - if (32 - pts + ots - nts < 0) - return; - - /* Ok. We have enougth "peb" ts. Clean old. */ - /* We start from zero, cause this is peb cells */ - for (i = 0; i < 32; i++) { - int tin = b->dxc[i]; - int t = tin % 32; - if (tin < (c->dir?64:32) || tin > (c->dir?95:63)) - continue; - if (c->ts & (1ul << t)) { - b->dxc[tin] = TAU32_CROSS_OFF; - b->dxc[i] = TAU32_CROSS_OFF; - if (b->dxc[t + 32] == TAU32_CROSS_OFF && - b->dxc[t + 64] == TAU32_CROSS_OFF) { - b->dxc[t + 32] = t + 64; - b->dxc[t + 64] = t + 32; - } - omask |= (1ul << t); - } - } - - k = 0; - /* Set */ - for (i = 0; i < 32; i++) { - if ((ts & (1ul << i)) == 0) - continue; - while (b->dxc[k] != TAU32_CROSS_OFF) { - k++; - /* Paranoic */ - if (k >= 32) { - CE_DDK_DEBUG (b, c, ("TS count overflow\n")); - return; - } - } - b->dxc[k] = (c->dir?64:32) + i; - b->dxc[(c->dir?64:32) + i] = k; - if (b->dxc[(c->dir?32:64) + i] == (c->dir?64:32) + i) - b->dxc[(c->dir?32:64) + i] = TAU32_CROSS_OFF; - mask |= (1ul << k); - } - - c->ts = ts; - c->baud = nts*64000; - - CE_PREREQUEST (b, c, b->cr.queue, req); - if (!req) - return; - - req->Command = TAU32_Timeslots_Channel | TAU32_Configure_Commit; - req->Io.ChannelNumber = c->num; - req->Io.ChannelConfig.AssignedTsMask = mask; - - if (c->phony) { - b->pmask &= ~omask; - b->pmask |= mask; - } - - CE_DDK_DEBUG (b, c, ("ts=%lx mask=%lx omask=%lx pmask=%lx\n", c->ts, - mask, omask, b->pmask)); - CE_DDK_DEBUG (b, c, ("Crossmatrix table:\n")); - -#ifdef CE_DDK_DEBUG_ENABLED - for (i = 0; i < 32*3; i++) { - printf ("%3d\t%s", b->dxc[i], (i%8==7)?"\n":""); - printf ("%s",(i%32==31)?"\n":""); - } -#endif - - CE_DDK_DEBUG (b, c, ("Submit tsmask\n")); - if (!ce_cfg_submit (b)) { - CE_DDK_DEBUG (b, c, ("Fail to submit tsmask\n")); - /* Do some error processing */ - return; - } - - CE_DDK_DEBUG (b, c, ("SetCrossMatrix\n")); - if (!TAU32_SetCrossMatrix(b->ddk.pControllerObject, b->dxc, b->pmask)) { - CE_DDK_DEBUG (b, c, ("Faild to SetCrossMatrix\n")); - /* Do some error processing */ - return; - } -} - -void ce_set_ts (ce_chan_t *c, unsigned long ts) -{ - ce_board_t *b = c->board; - ce_chan_t *x; - - if (c->ts == ts || b->chan->unfram) - return; - - ts &= ~(1ul); - - if (!b->chan[c->dir].use16) - ts &= ~(1ul << 16); - - for (x = b->chan; x < b->chan + NCHAN; x++) { - if (x == c || x->dir != c->dir) - continue; - ts &= ~x->ts; - } - - _ce_set_ts (c, ts); -} - -void ce_set_unfram (ce_chan_t *c, unsigned char on) -{ - TAU32_UserRequest *req; - ce_board_t *b = c->board; - unsigned long cfg = c->config & ~TAU32_framing_mode_mask; - unsigned long i; - - if (c->num != 0 || b->cr.pending + 2*32 + 3>= CONFREQSZ) - return; - - on = on ? 1 : 0; - - if (on == c->unfram) - return; - - if (on) { - ce_set_dir (c, 0); - for (i = 1; i < TAU32_CHANNELS; i++) { - ce_set_ts (b->chan + i, 0); - ce_set_phony (b->chan + i, 0); - } - ce_set_use16 (b->chan + 0, 0); - ce_set_use16 (b->chan + 1, 0); - /* Get current value, previous ce_set request may change it */ - cfg = c->config & ~TAU32_framing_mode_mask; - cfg |= TAU32_unframed_2048; - c->unfram = on; - _ce_set_ts (b->chan, ~0ul); - c->config = cfg; - /* XXXRIK: Do extra checks on config queue size*/ - if (b->ddk.Interfaces) { - CE_PREREQUEST (b, c, b->cr.queue, req); - if (!req) - return; - req->Command = TAU32_Configure_E1; - req->Io.InterfaceConfig.Interface = TAU32_E1_B; - req->Io.InterfaceConfig.Config = TAU32_LineOff; - req->Io.InterfaceConfig.UnframedTsMask = 0; - CE_DDK_DEBUG (b, c, ("unfram: B line off\n")); - ce_cfg_submit (b); - } - CE_PREREQUEST (b, c, b->cr.queue, req); - if (!req) - return; - req->Command = TAU32_Configure_E1; - req->Io.InterfaceConfig.Interface = TAU32_E1_A; - req->Io.InterfaceConfig.Config = cfg; - req->Io.InterfaceConfig.UnframedTsMask = c->ts; - CE_DDK_DEBUG (b, c, ("Submit unfram\n")); - ce_cfg_submit (b); - } else { - cfg |= TAU32_framed_cas_cross; - CE_PREREQUEST (b, c, b->cr.queue, req); - if (!req) - return; - req->Command = TAU32_Configure_E1; - req->Io.InterfaceConfig.Interface = TAU32_E1_ALL; - req->Io.InterfaceConfig.Config = cfg; - req->Io.InterfaceConfig.UnframedTsMask = 0; - CE_DDK_DEBUG (b, c, ("Submit framed\n")); - ce_cfg_submit (b); - ce_set_ts (c, 0); - } - c->unfram = on; -} - -void ce_set_phony (ce_chan_t *c, unsigned char on) -{ - TAU32_UserRequest *req; - ce_board_t *b = c->board; - unsigned long mask = 0; - int i; - - if ((c->phony && on) || (c->phony == 0 && on == 0) || - b->cr.pending >= CONFREQSZ) - return; - - CE_PREREQUEST (b, c, b->cr.queue, req); - if (!req) - return; - - req->Command = TAU32_Configure_Channel; - req->Io.InterfaceConfig.Config = on ? TAU32_TMA : - (TAU32_HDLC | TAU32_fr_rx_splitcheck | TAU32_fr_rx_fitcheck); - req->Io.ChannelNumber = c->num; - CE_DDK_DEBUG (b, c, ("Submit phony\n")); - if (!ce_cfg_submit (b)) { - /* Do some error processing */ - return; - } - - for (i = 0; i < 32; i++) { - int t = b->dxc[i] % 32; - if (b->dxc[i] < (c->dir?64:32) || b->dxc[i] > (c->dir?95:63)) - continue; - if (c->ts & (1ul << t)) - mask |= (1ul << t); - } - - CE_DDK_DEBUG (b, c, ("phony mask:%lx\n", mask)); - - if (on) { - b->pmask |= mask; - } else { - b->pmask &= ~mask; - } - - c->phony = on ? 1 : 0; - - CE_DDK_DEBUG (b, c, ("Submit (setcrosmatrix) phony\n")); - if (!TAU32_SetCrossMatrix(b->ddk.pControllerObject, b->dxc, b->pmask)) { - /* Do some error processing */ - return; - } -} - -void ce_set_scrambler (ce_chan_t *c, unsigned char on) -{ - TAU32_UserRequest *req; - unsigned long cfg = c->config & ~TAU32_scrambler; - ce_board_t *b = c->board; - - if (c->num != 0 || c->unfram == 0 || b->cr.pending >= CONFREQSZ) - return; - on = on ? 1 : 0; - if (on == c->scrambler) - return; - - cfg |= on ? TAU32_scrambler : 0; - CE_PREREQUEST (b, c, b->cr.queue, req); - if (!req) - return; - req->Command = TAU32_Configure_E1; - req->Io.InterfaceConfig.Interface = c->num ? TAU32_E1_B : TAU32_E1_A; - req->Io.InterfaceConfig.Config = cfg; - req->Io.InterfaceConfig.UnframedTsMask = c->ts; - CE_DDK_DEBUG (b, c, ("Submit scrambler\n")); - if (ce_cfg_submit (b)) { - c->scrambler = on ? 1 : 0; - c->config = cfg; - } -} - -void ce_set_monitor (ce_chan_t *c, unsigned char on) -{ - TAU32_UserRequest *req; - unsigned long cfg = c->config & ~TAU32_monitor; - ce_board_t *b = c->board; - - if (c->num >= b->ddk.Interfaces || b->cr.pending >= CONFREQSZ) - return; - on = on ? 1 : 0; - if (on == c->monitor) - return; - - cfg |= on ? TAU32_monitor : 0; - CE_PREREQUEST (b, c, b->cr.queue, req); - if (!req) - return; - req->Command = TAU32_Configure_E1; - req->Io.InterfaceConfig.Interface = c->num ? TAU32_E1_B : TAU32_E1_A; - req->Io.InterfaceConfig.Config = cfg; - req->Io.InterfaceConfig.UnframedTsMask = c->ts; - CE_DDK_DEBUG (b, c, ("Submit monitor\n")); - if (ce_cfg_submit (b)) { - c->monitor = on ? 1 : 0; - c->config = cfg; - } -} - -static void _ce_submit_configure_e1 (ce_chan_t *c, char *rname) -{ - TAU32_UserRequest *req; - ce_board_t *b = c->board; - - CE_PREREQUEST (b, c, b->cr.queue, req); - if (!req) - return; - req->Command = TAU32_Configure_E1; - req->Io.InterfaceConfig.Interface = c->num == 0 ? TAU32_E1_A : TAU32_E1_B; - req->Io.InterfaceConfig.Config = c->config; - req->Io.InterfaceConfig.UnframedTsMask = c->ts; - CE_DDK_DEBUG (b, c, ("Submit %s\n", rname ? rname : "")); - if (!ce_cfg_submit (b)) { - CE_DDK_DEBUG (b, c, ("Fail to submit %s\n", rname?rname:"")); - /* Do some error processing */ - return; - } -} - -void ce_set_use16 (ce_chan_t *c, unsigned char on) -{ - ce_board_t *b = c->board; - ce_chan_t *x; - unsigned long cfg[2]; - int use[2]; - - if (c->num >= b->ddk.Interfaces || b->cr.pending + 2 >= CONFREQSZ) - return; - - cfg[0] = b->chan[0].config & ~TAU32_framing_mode_mask; - cfg[1] = b->chan[1].config & ~TAU32_framing_mode_mask; - - on = on ? 1 : 0; - - if (c->use16 == on || b->chan->unfram) - return; - - use[0] = b->chan[0].use16; - use[1] = b->chan[1].use16; - - /* Correct value */ - use[c->num] = on; - - if (b->ddk.Interfaces == 1) { - cfg[0] |= on ? TAU32_framed_cas_set : TAU32_framed_no_cas; - } else { - if (use[0] == 0 && use[1] == 0) { - cfg[0] |= TAU32_framed_cas_cross; - cfg[1] |= TAU32_framed_cas_cross; - } else if (use[0] == 0) { - cfg[0] |= TAU32_framed_cas_set; - cfg[1] |= TAU32_framed_no_cas; - } else if (use[1] == 0) { - cfg[0] |= TAU32_framed_no_cas; - cfg[1] |= TAU32_framed_cas_set; - } else { - cfg[0] |= TAU32_framed_no_cas; - cfg[1] |= TAU32_framed_no_cas; - } - } - - c->use16 = on; - - for (x = b->chan; !on && x < b->chan + NCHAN; x++) { - if (x->dir == c->num && x->ts & (1ul<<16)) { - ce_set_ts (x, x->ts); - break; - } - } - - if (cfg[0] != b->chan[0].config) { - b->chan[0].config = cfg[0]; - _ce_submit_configure_e1 (b->chan + 0, "use16"); - } - - if (cfg[1] != b->chan[1].config) { - b->chan[1].config = cfg[1]; - _ce_submit_configure_e1 (b->chan + 1, "use16"); - } -} - -void ce_set_crc4 (ce_chan_t *c, unsigned char on) -{ - TAU32_UserRequest *req; - unsigned long cfg = c->config & ~TAU32_crc4_mf; - ce_board_t *b = c->board; - - if (c->num >= b->ddk.Interfaces || b->cr.pending >= CONFREQSZ) - return; - on = on ? 1 : 0; - if (on == c->crc4 || b->chan->unfram) - return; - - cfg |= on ? TAU32_crc4_mf : 0; - CE_PREREQUEST (b, c, b->cr.queue, req); - if (!req) - return; - req->Command = TAU32_Configure_E1; - req->Io.InterfaceConfig.Interface = c->num ? TAU32_E1_B : TAU32_E1_A; - req->Io.InterfaceConfig.Config = cfg; - req->Io.InterfaceConfig.UnframedTsMask = c->ts; - CE_DDK_DEBUG (b, c, ("Submit crc4\n")); - if (ce_cfg_submit (b)) { - c->crc4 = on ? 1 : 0; - c->config = cfg; - } -} - -void ce_set_gsyn (ce_chan_t *c, int syn) -{ - ce_board_t *b = c->board; - unsigned int mode; - - if (c->num >= b->ddk.Interfaces) - return; - - if (syn == GSYN_RCV) - syn = c->num ? GSYN_RCV1 : GSYN_RCV0; - - switch (syn) { - default: mode = TAU32_SYNC_INTERNAL; break; - case GSYN_RCV0: mode = TAU32_SYNC_RCV_A; break; - case GSYN_RCV1: mode = TAU32_SYNC_RCV_B; break; - } - - CE_DDK_DEBUG (b, c, ("Set Sync Mode\n")); - if (TAU32_SetSyncMode (b->ddk.pControllerObject, mode)) { - b->chan->gsyn = syn; - if (b->ddk.Interfaces > 1) - (b->chan + 1)->gsyn = syn; - } -} - -int ce_get_cable (ce_chan_t *c) -{ - ce_board_t *b = c->board; - if (c->num >= b->ddk.Interfaces) - return 0; - - return CABLE_TP; -} - -void ce_set_dir (ce_chan_t *c, int dir) -{ - ce_board_t *b = c->board; - unsigned long ts; - if (b->cr.pending + 1>= CONFREQSZ || c->dir == dir) - return; - - ts = c->ts; - ce_set_ts (c, 0); - c->dir = dir; - ce_set_ts (c, ts); -} diff --git a/sys/dev/ce/ceddk.h b/sys/dev/ce/ceddk.h deleted file mode 100644 index 12742dbbef77..000000000000 --- a/sys/dev/ce/ceddk.h +++ /dev/null @@ -1,202 +0,0 @@ -/* - * Middle-level code for Cronyx Tau32-PCI adapters. - * - * Copyright (C) 2004 Cronyx Engineering - * Copyright (C) 2004 Roman Kurakin - * - * This software is distributed with NO WARRANTIES, not even the implied - * warranties for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. - * - * Authors grant any other persons or organisations a permission to use, - * modify and redistribute this software in source and binary forms, - * as long as this message is kept with the software, all derivative - * works or modified versions. - * - * $Cronyx: ceddk.h,v 1.2.6.1 2005/11/09 13:01:39 rik Exp $ - * $FreeBSD$ - */ - -#define TAU32_UserContext_Add void *sys; -#define TAU32_UserRequest_Add void *sys; TAU32_UserRequest *next; - -#include - -#define NCHAN TAU32_CHANNELS -#ifndef NBRD -# define NBRD 6 -#endif -#if NBRD != 6 -# error "NBRD != 6" -#endif - -#define BUFSZ 1664 - -typedef struct _ce_buf_item_t { - TAU32_UserRequest req; - unsigned char buf [BUFSZ+4]; - unsigned long phys; -} ce_buf_item_t; - -typedef struct _ce_buf_t { - ce_buf_item_t tx_item[TAU32_IO_QUEUE]; - ce_buf_item_t rx_item[TAU32_IO_QUEUE]; -} ce_buf_t; - -typedef struct { - unsigned long bpv; /* bipolar violations */ - unsigned long fse; /* frame sync errors */ - unsigned long crce; /* CRC errors */ - unsigned long rcrce; /* remote CRC errors (E-bit) */ - unsigned long uas; /* unavailable seconds */ - unsigned long les; /* line errored seconds */ - unsigned long es; /* errored seconds */ - unsigned long bes; /* bursty errored seconds */ - unsigned long ses; /* severely errored seconds */ - unsigned long oofs; /* out of frame seconds */ - unsigned long css; /* controlled slip seconds */ - unsigned long dm; /* degraded minutes */ -} ce_gstat_t; - -typedef struct _ce_chan_t { - unsigned char num; - unsigned char type; -#define T_NONE 0 /* no channel */ -#define T_E1 3 /* E1 */ -#define T_DATA 6 /* no physical interface */ - - struct _ce_board_t *board; - unsigned char dtr; - unsigned char rts; - ce_buf_item_t *tx_item; - ce_buf_item_t *rx_item; - TAU32_UserRequest *rx_queue; - TAU32_UserRequest *tx_queue; - unsigned char debug; - unsigned char debug_shadow; - void (*transmit) (struct _ce_chan_t*, void*, int); - void (*receive) (struct _ce_chan_t*, unsigned char*, int); - void (*error) (struct _ce_chan_t*, int); -#define CE_FRAME 1 -#define CE_CRC 2 -#define CE_UNDERRUN 3 -#define CE_OVERRUN 4 -#define CE_OVERFLOW 5 - int tx_pending; - int rx_pending; - unsigned long rintr; - unsigned long tintr; - ulong64 ibytes; - ulong64 obytes; - unsigned long ipkts; - unsigned long opkts; - unsigned long underrun; - unsigned long overrun; - unsigned long frame; - unsigned long crc; - - unsigned short status; /* E1/G.703 line status bit mask */ -#define ESTS_NOALARM 0x0001 /* no alarm present */ -#define ESTS_FARLOF 0x0002 /* receiving far loss of framing */ -#define ESTS_AIS 0x0008 /* receiving all ones */ -#define ESTS_LOF 0x0020 /* loss of framing */ -#define ESTS_LOS 0x0040 /* loss of signal */ -#define ESTS_AIS16 0x0100 /* receiving all ones in timeslot 16 */ -#define ESTS_FARLOMF 0x0200 /* receiving alarm in timeslot 16 */ -#define ESTS_LOMF 0x0400 /* loss of multiframe sync */ -#define ESTS_TSTREQ 0x0800 /* test code detected */ -#define ESTS_TSTERR 0x1000 /* test error */ - - unsigned long totsec; /* total seconds elapsed */ - unsigned long cursec; /* current seconds elapsed */ - unsigned long degsec; /* degraded seconds */ - unsigned long degerr; /* errors during degraded seconds */ - ce_gstat_t currnt; /* current 15-min interval data */ - ce_gstat_t total; /* total statistics data */ - ce_gstat_t interval [48]; /* 12 hour period data */ - - unsigned int acc_status; - unsigned long config; - unsigned long baud; - unsigned long ts; - unsigned long ts_mask; - unsigned char dir; - unsigned char lloop; - unsigned char rloop; - unsigned char higain; - unsigned char phony; - unsigned char scrambler; - unsigned char unfram; - unsigned char monitor; - unsigned char crc4; - unsigned char use16; - unsigned char gsyn; /* G.703 clock mode */ -#define GSYN_INT 0 /* internal transmit clock source */ -#define GSYN_RCV 1 /* transmit clock source = receive */ -#define GSYN_RCV0 2 /* tclk = rclk from channel 0 */ -#define GSYN_RCV1 3 /* ...from channel 1 */ - unsigned long mtu; - void *sys; -} ce_chan_t; - -#define CONFREQSZ 128 -typedef struct _ce_conf_req { - TAU32_UserRequest req[CONFREQSZ+10]; - TAU32_UserRequest *queue; - int pending; -} ce_conf_req; - -typedef struct _ce_board_t { - TAU32_UserContext ddk; - ce_chan_t chan[NCHAN]; - int num; - int mux; -#define TAU32_BASE_NAME "Tau-PCI-32" -#define TAU32_LITE_NAME "Tau-PCI-32/Lite" -#define TAU32_ADPCM_NAME "Tau-PCI-32/ADPCM" -#define TAU32_UNKNOWN_NAME "Unknown Tau-PCI-32" - char name [32]; - ce_conf_req cr; - TAU32_CrossMatrix dxc; - unsigned long pmask; - void *sys; -} ce_board_t; - -void ce_set_dtr (ce_chan_t *c, int on); -void ce_set_rts (ce_chan_t *c, int on); -int ce_get_cd (ce_chan_t *c); -int ce_get_cts (ce_chan_t *c); -int ce_get_dsr (ce_chan_t *c); - -int ce_transmit_space (ce_chan_t *c); -int ce_send_packet (ce_chan_t *c, unsigned char *buf, int len, void *tag); -void ce_start_chan (ce_chan_t *c, int tx, int rx, ce_buf_t *cb, unsigned long phys); -void ce_stop_chan (ce_chan_t *c); -void ce_register_transmit (ce_chan_t *c, void (*func) (ce_chan_t*, void*, int)); -void ce_register_receive (ce_chan_t *c, void (*func) (ce_chan_t*, - unsigned char*, int)); -void ce_register_error (ce_chan_t *c, void (*func) (ce_chan_t*, int)); - -void TAU32_CALLBACK_TYPE - ce_error_callback(TAU32_UserContext *pContext, int Item, - unsigned NotifyBits); -void TAU32_CALLBACK_TYPE - ce_status_callback(TAU32_UserContext *pContext, int Item, - unsigned NotifyBits); - -void ce_set_baud (ce_chan_t *c, unsigned long baud); -void ce_set_lloop (ce_chan_t *c, unsigned char on); -void ce_set_rloop (ce_chan_t *c, unsigned char on); -void ce_set_higain (ce_chan_t *c, unsigned char on); -void ce_set_unfram (ce_chan_t *c, unsigned char on); -void ce_set_ts (ce_chan_t *c, unsigned long ts); -void ce_set_phony (ce_chan_t *c, unsigned char on); -void ce_set_scrambler (ce_chan_t *c, unsigned char on); -void ce_set_monitor (ce_chan_t *c, unsigned char on); -void ce_set_use16 (ce_chan_t *c, unsigned char on); -void ce_set_crc4 (ce_chan_t *c, unsigned char on); -void ce_set_gsyn (ce_chan_t *c, int syn); -#define CABLE_TP 11 -int ce_get_cable (ce_chan_t *c); -void ce_set_dir (ce_chan_t *c, int dir); -void ce_e1_timer (ce_chan_t *c); -void ce_init_board (ce_board_t *b); diff --git a/sys/dev/ce/if_ce.c b/sys/dev/ce/if_ce.c deleted file mode 100644 index dab22d9a23a0..000000000000 --- a/sys/dev/ce/if_ce.c +++ /dev/null @@ -1,1813 +0,0 @@ -/* - * Cronyx-Tau32-PCI adapter driver for FreeBSD. - * - * Copyright (C) 2003-2005 Cronyx Engineering. - * Copyright (C) 2003-2005 Kurakin Roman, - * - * This software is distributed with NO WARRANTIES, not even the implied - * warranties for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. - * - * Authors grant any other persons or organisations a permission to use, - * modify and redistribute this software in source and binary forms, - * as long as this message is kept with the software, all derivative - * works or modified versions. - * - * $Cronyx: if_ce.c,v 1.9.2.8 2005/11/21 14:17:44 rik Exp $ - */ - -#include -__FBSDID("$FreeBSD$"); - -#include - -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include - -#ifndef PCIR_BAR -#define PCIR_BAR(x) (PCIR_MAPS + (x) * 4) -#endif - -/* define as our previous return value */ -#ifndef BUS_PROBE_DEFAULT -#define BUS_PROBE_DEFAULT 0 -#endif - -#define CE_DEBUG(d,s) ({if (d->chan->debug) {\ - printf ("%s: ", d->name); printf s;}}) -#define CE_DEBUG2(d,s) ({if (d->chan->debug>1) {\ - printf ("%s: ", d->name); printf s;}}) - -#define CE_LOCK_NAME "ceX" - -#define CE_LOCK(_bd) mtx_lock (&(_bd)->ce_mtx) -#define CE_UNLOCK(_bd) mtx_unlock (&(_bd)->ce_mtx) -#define CE_LOCK_ASSERT(_bd) mtx_assert (&(_bd)->ce_mtx, MA_OWNED) - -#define CDEV_MAJOR 185 - -static int ce_probe __P((device_t)); -static int ce_attach __P((device_t)); -static int ce_detach __P((device_t)); - -static device_method_t ce_methods[] = { - /* Device interface */ - DEVMETHOD(device_probe, ce_probe), - DEVMETHOD(device_attach, ce_attach), - DEVMETHOD(device_detach, ce_detach), - - DEVMETHOD_END -}; - -typedef struct _ce_dma_mem_t { - unsigned long phys; - void *virt; - size_t size; - bus_dma_tag_t dmat; - bus_dmamap_t mapp; -} ce_dma_mem_t; - -typedef struct _drv_t { - char name [8]; - int running; - ce_board_t *board; - ce_chan_t *chan; - struct ifqueue rqueue; - char nodename [NG_NODESIZ]; - hook_p hook; - hook_p debug_hook; - node_p node; - struct ifqueue queue; - struct ifqueue hi_queue; - short timeout; - struct callout timeout_handle; - struct cdev *devt; - ce_dma_mem_t dmamem; -} drv_t; - -typedef struct _bdrv_t { - ce_board_t *board; - struct resource *ce_res; - struct resource *ce_irq; - void *ce_intrhand; - ce_dma_mem_t dmamem; - drv_t channel [NCHAN]; - struct mtx ce_mtx; -} bdrv_t; - -static driver_t ce_driver = { - "ce", - ce_methods, - sizeof(bdrv_t), -}; - -static void ce_receive (ce_chan_t *c, unsigned char *data, int len); -static void ce_transmit (ce_chan_t *c, void *attachment, int len); -static void ce_error (ce_chan_t *c, int data); -static void ce_up (drv_t *d); -static void ce_start (drv_t *d); -static void ce_down (drv_t *d); -static void ce_watchdog (drv_t *d); -static void ce_watchdog_timer (void *arg); -static struct ng_type typestruct; - -static ce_board_t *adapter [NBRD]; -static drv_t *channel [NBRD*NCHAN]; -static struct callout led_timo [NBRD]; -static struct callout timeout_handle; - -static int ce_destroy = 0; - -static int ce_open (struct cdev *dev, int oflags, int devtype, struct thread *td); -static int ce_close (struct cdev *dev, int fflag, int devtype, struct thread *td); -static int ce_ioctl (struct cdev *dev, u_long cmd, caddr_t data, int flag, struct thread *td); -static struct cdevsw ce_cdevsw = { - .d_version = D_VERSION, - .d_open = ce_open, - .d_close = ce_close, - .d_ioctl = ce_ioctl, - .d_name = "ce", -}; - -/* - * Make an mbuf from data. - */ -static struct mbuf *makembuf (void *buf, unsigned len) -{ - struct mbuf *m; - - MGETHDR (m, M_NOWAIT, MT_DATA); - if (! m) - return 0; - if (!(MCLGET(m, M_NOWAIT))) { - m_freem (m); - return 0; - } - m->m_pkthdr.len = m->m_len = len; - bcopy (buf, mtod (m, caddr_t), len); - return m; -} - -static int ce_probe (device_t dev) -{ - if ((pci_get_vendor (dev) == TAU32_PCI_VENDOR_ID) && - (pci_get_device (dev) == TAU32_PCI_DEVICE_ID)) { - device_set_desc (dev, "Cronyx-Tau32-PCI serial adapter"); - return BUS_PROBE_DEFAULT; - } - return ENXIO; -} - -static void ce_timeout (void *arg) -{ - drv_t *d; - int s, i, k; - - for (i = 0; i < NBRD; ++i) { - if (adapter[i] == NULL) - continue; - for (k = 0; k < NCHAN; ++k) { - s = splimp (); - if (ce_destroy) { - splx (s); - return; - } - d = channel[i * NCHAN + k]; - if (!d) { - splx (s); - continue; - } - CE_LOCK ((bdrv_t *)d->board->sys); - switch (d->chan->type) { - case T_E1: - ce_e1_timer (d->chan); - break; - default: - break; - } - CE_UNLOCK ((bdrv_t *)d->board->sys); - splx (s); - } - } - s = splimp (); - if (!ce_destroy) - callout_reset (&timeout_handle, hz, ce_timeout, 0); - splx (s); -} - -static void ce_led_off (void *arg) -{ - ce_board_t *b = arg; - bdrv_t *bd = (bdrv_t *) b->sys; - int s; - s = splimp (); - if (ce_destroy) { - splx (s); - return; - } - CE_LOCK (bd); - TAU32_LedSet (b->ddk.pControllerObject, 0); - CE_UNLOCK (bd); - splx (s); -} - -static void ce_intr (void *arg) -{ - bdrv_t *bd = arg; - ce_board_t *b = bd->board; - int s; - int i; - int error; - - s = splimp (); - if (ce_destroy) { - splx (s); - return; - } - CE_LOCK (bd); - /* Turn LED on. */ - TAU32_LedSet (b->ddk.pControllerObject, 1); - - TAU32_HandleInterrupt (b->ddk.pControllerObject); - - /* Turn LED off 50 msec later. */ - callout_reset (&led_timo[b->num], hz/20, ce_led_off, b); - CE_UNLOCK (bd); - splx (s); - - /* Pass packets in a lock-free state */ - for (i = 0; i < NCHAN && b->chan[i].type; i++) { - drv_t *d = b->chan[i].sys; - struct mbuf *m; - if (!d || !d->running) - continue; - while (_IF_QLEN(&d->rqueue)) { - IF_DEQUEUE (&d->rqueue,m); - if (!m) - continue; - if (d->hook) { - NG_SEND_DATA_ONLY (error, d->hook, m); - } else { - IF_DRAIN (&d->rqueue); - } - } - } -} - -static void -ce_bus_dmamap_addr (void *arg, bus_dma_segment_t *segs, int nseg, int error) -{ - unsigned long *addr; - - if (error) - return; - - KASSERT(nseg == 1, ("too many DMA segments, %d should be 1", nseg)); - addr = arg; - *addr = segs->ds_addr; -} - -#ifndef BUS_DMA_ZERO -#define BUS_DMA_ZERO 0 -#endif - -static int -ce_bus_dma_mem_alloc (int bnum, int cnum, ce_dma_mem_t *dmem) -{ - int error; - - error = bus_dma_tag_create (NULL, 16, 0, BUS_SPACE_MAXADDR_32BIT, - BUS_SPACE_MAXADDR, NULL, NULL, dmem->size, 1, - dmem->size, 0, - NULL, NULL, - &dmem->dmat); - if (error) { - if (cnum >= 0) printf ("ce%d-%d: ", bnum, cnum); - else printf ("ce%d: ", bnum); - printf ("couldn't allocate tag for dma memory\n"); - return 0; - } - error = bus_dmamem_alloc (dmem->dmat, (void **)&dmem->virt, - BUS_DMA_NOWAIT | BUS_DMA_ZERO, &dmem->mapp); - if (error) { - if (cnum >= 0) printf ("ce%d-%d: ", bnum, cnum); - else printf ("ce%d: ", bnum); - printf ("couldn't allocate mem for dma memory\n"); - bus_dma_tag_destroy (dmem->dmat); - return 0; - } - error = bus_dmamap_load (dmem->dmat, dmem->mapp, dmem->virt, - dmem->size, ce_bus_dmamap_addr, &dmem->phys, 0); - if (error) { - if (cnum >= 0) printf ("ce%d-%d: ", bnum, cnum); - else printf ("ce%d: ", bnum); - printf ("couldn't load mem map for dma memory\n"); - bus_dmamem_free (dmem->dmat, dmem->virt, dmem->mapp); - bus_dma_tag_destroy (dmem->dmat); - return 0; - } - bzero (dmem->virt, dmem->size); - return 1; -} - -static void -ce_bus_dma_mem_free (ce_dma_mem_t *dmem) -{ - bus_dmamap_unload (dmem->dmat, dmem->mapp); - bus_dmamem_free (dmem->dmat, dmem->virt, dmem->mapp); - bus_dma_tag_destroy (dmem->dmat); -} - -/* - * Called if the probe succeeded. - */ -static int ce_attach (device_t dev) -{ - bdrv_t *bd = device_get_softc (dev); - int unit = device_get_unit (dev); - char *ce_ln = CE_LOCK_NAME; - vm_offset_t vbase; - int rid, error; - ce_board_t *b; - ce_chan_t *c; - drv_t *d; - int s; - - b = malloc (sizeof(ce_board_t), M_DEVBUF, M_WAITOK); - if (!b) { - printf ("ce%d: couldn't allocate memory\n", unit); - return (ENXIO); - } - bzero (b, sizeof(ce_board_t)); - - b->ddk.sys = &b; - - pci_enable_busmaster (dev); - - bd->dmamem.size = TAU32_ControllerObjectSize; - if (! ce_bus_dma_mem_alloc (unit, -1, &bd->dmamem)) { - free (b, M_DEVBUF); - return (ENXIO); - } - b->ddk.pControllerObject = bd->dmamem.virt; - - bd->board = b; - b->sys = bd; - rid = PCIR_BAR(0); - bd->ce_res = bus_alloc_resource (dev, SYS_RES_MEMORY, &rid, - 0, ~0, 1, RF_ACTIVE); - if (! bd->ce_res) { - printf ("ce%d: cannot map memory\n", unit); - ce_bus_dma_mem_free (&bd->dmamem); - free (b, M_DEVBUF); - return (ENXIO); - } - vbase = (vm_offset_t) rman_get_virtual (bd->ce_res); - - b->ddk.PciBar1VirtualAddress = (void *)vbase; - b->ddk.ControllerObjectPhysicalAddress = bd->dmamem.phys; - b->ddk.pErrorNotifyCallback = ce_error_callback; - b->ddk.pStatusNotifyCallback = ce_status_callback; - b->num = unit; - - TAU32_BeforeReset(&b->ddk); - pci_write_config (dev, TAU32_PCI_RESET_ADDRESS, TAU32_PCI_RESET_ON, 4); - pci_write_config (dev, TAU32_PCI_RESET_ADDRESS, TAU32_PCI_RESET_OFF, 4); - - if(!TAU32_Initialize(&b->ddk, 0)) - { - printf ("ce%d: init adapter error 0x%08x, bus dead bits 0x%08lx\n", - unit, b->ddk.InitErrors, b->ddk.DeadBits); - bus_release_resource (dev, SYS_RES_MEMORY, PCIR_BAR(0), bd->ce_res); - ce_bus_dma_mem_free (&bd->dmamem); - free (b, M_DEVBUF); - return (ENXIO); - } - - s = splimp (); - - ce_init_board (b); - - rid = 0; - bd->ce_irq = bus_alloc_resource (dev, SYS_RES_IRQ, &rid, 0, ~0, 1, - RF_SHAREABLE | RF_ACTIVE); - if (! bd->ce_irq) { - printf ("ce%d: cannot map interrupt\n", unit); - bus_release_resource (dev, SYS_RES_MEMORY, PCIR_BAR(0), bd->ce_res); - ce_bus_dma_mem_free (&bd->dmamem); - free (b, M_DEVBUF); - splx (s); - return (ENXIO); - } - callout_init (&led_timo[unit], 1); - error = bus_setup_intr (dev, bd->ce_irq, - INTR_TYPE_NET|INTR_MPSAFE, - NULL, ce_intr, bd, &bd->ce_intrhand); - if (error) { - printf ("ce%d: cannot set up irq\n", unit); - bus_release_resource (dev, SYS_RES_IRQ, 0, bd->ce_irq); - bus_release_resource (dev, SYS_RES_MEMORY, - PCIR_BAR(0), bd->ce_res); - ce_bus_dma_mem_free (&bd->dmamem); - free (b, M_DEVBUF); - splx (s); - return (ENXIO); - } - - switch (b->ddk.Model) { - case 1: strcpy (b->name, TAU32_BASE_NAME); break; - case 2: strcpy (b->name, TAU32_LITE_NAME); break; - case 3: strcpy (b->name, TAU32_ADPCM_NAME); break; - default: strcpy (b->name, TAU32_UNKNOWN_NAME); break; - } - - printf ("ce%d: %s\n", unit, b->name); - - for (c = b->chan; c < b->chan + NCHAN; ++c) { - c->num = (c - b->chan); - c->board = b; - - d = &bd->channel[c->num]; - d->dmamem.size = sizeof(ce_buf_t); - if (! ce_bus_dma_mem_alloc (unit, c->num, &d->dmamem)) - continue; - - channel [b->num * NCHAN + c->num] = d; - sprintf (d->name, "ce%d.%d", b->num, c->num); - d->board = b; - d->chan = c; - c->sys = d; - } - - for (c = b->chan; c < b->chan + NCHAN; ++c) { - if (c->sys == NULL) - continue; - d = c->sys; - - callout_init (&d->timeout_handle, 1); - if (ng_make_node_common (&typestruct, &d->node) != 0) { - printf ("%s: cannot make common node\n", d->name); - d->node = NULL; - continue; - } - NG_NODE_SET_PRIVATE (d->node, d); - sprintf (d->nodename, "%s%d", NG_CE_NODE_TYPE, - c->board->num * NCHAN + c->num); - if (ng_name_node (d->node, d->nodename)) { - printf ("%s: cannot name node\n", d->nodename); - NG_NODE_UNREF (d->node); - continue; - } - d->queue.ifq_maxlen = ifqmaxlen; - d->hi_queue.ifq_maxlen = ifqmaxlen; - d->rqueue.ifq_maxlen = ifqmaxlen; - mtx_init (&d->queue.ifq_mtx, "ce_queue", NULL, MTX_DEF); - mtx_init (&d->hi_queue.ifq_mtx, "ce_queue_hi", NULL, MTX_DEF); - mtx_init (&d->rqueue.ifq_mtx, "ce_rqueue", NULL, MTX_DEF); - ce_start_chan (c, 1, 1, d->dmamem.virt, d->dmamem.phys); - - /* Register callback functions. */ - ce_register_transmit (c, &ce_transmit); - ce_register_receive (c, &ce_receive); - ce_register_error (c, &ce_error); - d->devt = make_dev (&ce_cdevsw, b->num*NCHAN+c->num, UID_ROOT, - GID_WHEEL, 0600, "ce%d", b->num*NCHAN+c->num); - } - - ce_ln[2] = '0' + unit; - mtx_init (&bd->ce_mtx, ce_ln, MTX_NETWORK_LOCK, MTX_DEF|MTX_RECURSE); - CE_LOCK (bd); - TAU32_EnableInterrupts(b->ddk.pControllerObject); - adapter[unit] = b; - CE_UNLOCK (bd); - splx (s); - - gone_in_dev(dev, 14, "sync serial (T1/E1) drivers"); - return 0; -} - -static int ce_detach (device_t dev) -{ - bdrv_t *bd = device_get_softc (dev); - ce_board_t *b = bd->board; - ce_chan_t *c; - int s; - - KASSERT (mtx_initialized (&bd->ce_mtx), ("ce mutex not initialized")); - s = splimp (); - CE_LOCK (bd); - /* Check if the device is busy (open). */ - for (c = b->chan; c < b->chan + NCHAN; ++c) { - drv_t *d = (drv_t*) c->sys; - - /* XXX Non existen chan! */ - if (! d || ! d->chan) - continue; - if (d->running) { - CE_UNLOCK (bd); - splx (s); - return EBUSY; - } - } - - /* Ok, we can unload driver */ - /* At first we should disable interrupts */ - ce_destroy = 1; - TAU32_DisableInterrupts(b->ddk.pControllerObject); - - callout_stop (&led_timo[b->num]); - - for (c = b->chan; c < b->chan + NCHAN; ++c) { - drv_t *d = (drv_t*) c->sys; - - if (! d || ! d->chan) - continue; - callout_stop (&d->timeout_handle); - if (d->node) { - ng_rmnode_self (d->node); - NG_NODE_UNREF (d->node); - d->node = NULL; - } - IF_DRAIN (&d->rqueue); - mtx_destroy (&d->queue.ifq_mtx); - mtx_destroy (&d->hi_queue.ifq_mtx); - mtx_destroy (&d->rqueue.ifq_mtx); - destroy_dev (d->devt); - } - - CE_UNLOCK (bd); - splx (s); - - callout_drain (&led_timo[b->num]); - - /* Disable the interrupt request. */ - bus_teardown_intr (dev, bd->ce_irq, bd->ce_intrhand); - bus_release_resource (dev, SYS_RES_IRQ, 0, bd->ce_irq); - TAU32_DestructiveHalt (b->ddk.pControllerObject, 0); - bus_release_resource (dev, SYS_RES_MEMORY, PCIR_BAR(0), bd->ce_res); - - for (c = b->chan; c < b->chan + NCHAN; ++c) { - drv_t *d = (drv_t*) c->sys; - - if (! d || ! d->chan) - continue; - callout_drain (&d->timeout_handle); - channel [b->num * NCHAN + c->num] = NULL; - /* Deallocate buffers. */ - ce_bus_dma_mem_free (&d->dmamem); - } - adapter [b->num] = NULL; - ce_bus_dma_mem_free (&bd->dmamem); - free (b, M_DEVBUF); - mtx_destroy (&bd->ce_mtx); - return 0; -} - - -/* - * Stop the interface. Called on splimp(). - */ -static void ce_down (drv_t *d) -{ - CE_DEBUG (d, ("ce_down\n")); - /* Interface is going down -- stop it. */ - ce_set_dtr (d->chan, 0); - ce_set_rts (d->chan, 0); - - d->running = 0; - callout_stop (&d->timeout_handle); -} - -/* - * Start the interface. Called on splimp(). - */ -static void ce_up (drv_t *d) -{ - CE_DEBUG (d, ("ce_up\n")); - ce_set_dtr (d->chan, 1); - ce_set_rts (d->chan, 1); - - d->running = 1; -} - -/* - * Start output on the interface. Get another datagram to send - * off of the interface queue, and copy it to the interface - * before starting the output. - */ -static void ce_send (drv_t *d) -{ - struct mbuf *m; - u_short len; - - CE_DEBUG2 (d, ("ce_send\n")); - - /* No output if the interface is down. */ - if (! d->running) - return; - - while (ce_transmit_space (d->chan)) { - /* Get the packet to send. */ - IF_DEQUEUE (&d->hi_queue, m); - if (! m) - IF_DEQUEUE (&d->queue, m); - if (! m) - return; - len = m_length (m, NULL); - if (len >= BUFSZ) - printf ("%s: too long packet: %d bytes: ", - d->name, len); - else if (! m->m_next) - ce_send_packet (d->chan, (u_char*) mtod (m, caddr_t), len, 0); - else { - ce_buf_item_t *item = (ce_buf_item_t*)d->chan->tx_queue; - m_copydata (m, 0, len, item->buf); - ce_send_packet (d->chan, item->buf, len, 0); - } - m_freem (m); - /* Set up transmit timeout, if the transmit ring is not empty.*/ - d->timeout = 10; - } -} - -/* - * Start output on the interface. - * Always called on splimp(). - */ -static void ce_start (drv_t *d) -{ - if (d->running) { - if (! d->chan->dtr) - ce_set_dtr (d->chan, 1); - if (! d->chan->rts) - ce_set_rts (d->chan, 1); - ce_send (d); - callout_reset (&d->timeout_handle, hz, ce_watchdog_timer, d); - } -} - -/* - * Handle transmit timeouts. - * Recover after lost transmit interrupts. - * Always called on splimp(). - */ -static void ce_watchdog (drv_t *d) -{ - CE_DEBUG (d, ("device timeout\n")); - if (d->running) { - ce_set_dtr (d->chan, 0); - ce_set_rts (d->chan, 0); -/* ce_stop_chan (d->chan);*/ -/* ce_start_chan (d->chan, 1, 1, 0, 0);*/ - ce_set_dtr (d->chan, 1); - ce_set_rts (d->chan, 1); - ce_start (d); - } -} - -static void ce_watchdog_timer (void *arg) -{ - drv_t *d = arg; - bdrv_t *bd = d->board->sys; - - CE_LOCK(bd); - if (d->timeout == 1) - ce_watchdog (d); - if (d->timeout) - d->timeout--; - callout_reset (&d->timeout_handle, hz, ce_watchdog_timer, d); - CE_UNLOCK(bd); -} - -static void ce_transmit (ce_chan_t *c, void *attachment, int len) -{ - drv_t *d = c->sys; - - d->timeout = 0; - ce_start (d); -} - -static void ce_receive (ce_chan_t *c, unsigned char *data, int len) -{ - drv_t *d = c->sys; - struct mbuf *m; - - if (! d->running) - return; - - m = makembuf (data, len); - if (! m) { - CE_DEBUG (d, ("no memory for packet\n")); - return; - } - if (c->debug > 1) - m_print (m, 0); - m->m_pkthdr.rcvif = 0; - IF_ENQUEUE(&d->rqueue, m); -} - -static void ce_error (ce_chan_t *c, int data) -{ - drv_t *d = c->sys; - - switch (data) { - case CE_FRAME: - CE_DEBUG (d, ("frame error\n")); - break; - case CE_CRC: - CE_DEBUG (d, ("crc error\n")); - break; - case CE_OVERRUN: - CE_DEBUG (d, ("overrun error\n")); - break; - case CE_OVERFLOW: - CE_DEBUG (d, ("overflow error\n")); - break; - case CE_UNDERRUN: - CE_DEBUG (d, ("underrun error\n")); - d->timeout = 0; - ce_start (d); - break; - default: - CE_DEBUG (d, ("error #%d\n", data)); - break; - } -} - -/* - * You also need read, write, open, close routines. - * This should get you started - */ -static int ce_open (struct cdev *dev, int oflags, int devtype, struct thread *td) -{ - int unit = dev2unit (dev); - drv_t *d; - - if (unit >= NBRD*NCHAN || ! (d = channel[unit])) - return ENXIO; - CE_DEBUG2 (d, ("ce_open\n")); - return 0; -} - -/* - * Only called on the LAST close. - */ -static int ce_close (struct cdev *dev, int fflag, int devtype, struct thread *td) -{ - drv_t *d = channel [dev2unit (dev)]; - - CE_DEBUG2 (d, ("ce_close\n")); - return 0; -} - -static int ce_modem_status (ce_chan_t *c) -{ - drv_t *d = c->sys; - bdrv_t *bd = d->board->sys; - int status, s; - - status = d->running ? TIOCM_LE : 0; - s = splimp (); - CE_LOCK (bd); - if (ce_get_cd (c)) status |= TIOCM_CD; - if (ce_get_cts (c)) status |= TIOCM_CTS; - if (ce_get_dsr (c)) status |= TIOCM_DSR; - if (c->dtr) status |= TIOCM_DTR; - if (c->rts) status |= TIOCM_RTS; - CE_UNLOCK (bd); - splx (s); - return status; -} - -static int ce_ioctl (struct cdev *dev, u_long cmd, caddr_t data, int flag, struct thread *td) -{ - drv_t *d = channel [dev2unit (dev)]; - bdrv_t *bd = d->board->sys; - ce_chan_t *c = d->chan; - struct serial_statistics *st; - struct e1_statistics *opte1; - int error, s; - char mask[16]; - - switch (cmd) { - case SERIAL_GETREGISTERED: - CE_DEBUG2 (d, ("ioctl: getregistered\n")); - bzero (mask, sizeof(mask)); - for (s=0; srintr = c->rintr; - st->tintr = c->tintr; - st->mintr = 0; - st->ibytes = c->ibytes; - st->ipkts = c->ipkts; - st->obytes = c->obytes; - st->opkts = c->opkts; - st->ierrs = c->overrun + c->frame + c->crc; - st->oerrs = c->underrun; - return 0; - - case SERIAL_GETESTAT: - CE_DEBUG2 (d, ("ioctl: getestat\n")); - if (c->type != T_E1) - return EINVAL; - opte1 = (struct e1_statistics*) data; - - opte1->status = 0; - if (c->status & ESTS_NOALARM) - opte1->status |= E1_NOALARM; - if (c->status & ESTS_LOS) - opte1->status |= E1_LOS; - if (c->status & ESTS_LOF) - opte1->status |= E1_LOF; - if (c->status & ESTS_AIS) - opte1->status |= E1_AIS; - if (c->status & ESTS_LOMF) - opte1->status |= E1_LOMF; - if (c->status & ESTS_AIS16) - opte1->status |= E1_AIS16; - if (c->status & ESTS_FARLOF) - opte1->status |= E1_FARLOF; - if (c->status & ESTS_FARLOMF) - opte1->status |= E1_FARLOMF; - if (c->status & ESTS_TSTREQ) - opte1->status |= E1_TSTREQ; - if (c->status & ESTS_TSTERR) - opte1->status |= E1_TSTERR; - - opte1->cursec = c->cursec; - opte1->totsec = c->totsec + c->cursec; - - opte1->currnt.bpv = c->currnt.bpv; - opte1->currnt.fse = c->currnt.fse; - opte1->currnt.crce = c->currnt.crce; - opte1->currnt.rcrce = c->currnt.rcrce; - opte1->currnt.uas = c->currnt.uas; - opte1->currnt.les = c->currnt.les; - opte1->currnt.es = c->currnt.es; - opte1->currnt.bes = c->currnt.bes; - opte1->currnt.ses = c->currnt.ses; - opte1->currnt.oofs = c->currnt.oofs; - opte1->currnt.css = c->currnt.css; - opte1->currnt.dm = c->currnt.dm; - - opte1->total.bpv = c->total.bpv + c->currnt.bpv; - opte1->total.fse = c->total.fse + c->currnt.fse; - opte1->total.crce = c->total.crce + c->currnt.crce; - opte1->total.rcrce = c->total.rcrce + c->currnt.rcrce; - opte1->total.uas = c->total.uas + c->currnt.uas; - opte1->total.les = c->total.les + c->currnt.les; - opte1->total.es = c->total.es + c->currnt.es; - opte1->total.bes = c->total.bes + c->currnt.bes; - opte1->total.ses = c->total.ses + c->currnt.ses; - opte1->total.oofs = c->total.oofs + c->currnt.oofs; - opte1->total.css = c->total.css + c->currnt.css; - opte1->total.dm = c->total.dm + c->currnt.dm; - for (s=0; s<48; ++s) { - opte1->interval[s].bpv = c->interval[s].bpv; - opte1->interval[s].fse = c->interval[s].fse; - opte1->interval[s].crce = c->interval[s].crce; - opte1->interval[s].rcrce = c->interval[s].rcrce; - opte1->interval[s].uas = c->interval[s].uas; - opte1->interval[s].les = c->interval[s].les; - opte1->interval[s].es = c->interval[s].es; - opte1->interval[s].bes = c->interval[s].bes; - opte1->interval[s].ses = c->interval[s].ses; - opte1->interval[s].oofs = c->interval[s].oofs; - opte1->interval[s].css = c->interval[s].css; - opte1->interval[s].dm = c->interval[s].dm; - } - return 0; - - case SERIAL_CLRSTAT: - CE_DEBUG2 (d, ("ioctl: clrstat\n")); - /* Only for superuser! */ - error = priv_check (td, PRIV_DRIVER); - if (error) - return error; - c->rintr = 0; - c->tintr = 0; - c->ibytes = 0; - c->obytes = 0; - c->ipkts = 0; - c->opkts = 0; - c->overrun = 0; - c->frame = 0; - c->crc = 0; - c->underrun = 0; - bzero (&c->currnt, sizeof (c->currnt)); - bzero (&c->total, sizeof (c->total)); - bzero (c->interval, sizeof (c->interval)); - return 0; - - case SERIAL_GETLOOP: - CE_DEBUG2 (d, ("ioctl: getloop\n")); - if (c->type != T_E1) - return EINVAL; - *(int*)data = c->lloop; - return 0; - - case SERIAL_SETLOOP: - CE_DEBUG2 (d, ("ioctl: setloop\n")); - if (c->type != T_E1) - return EINVAL; - /* Only for superuser! */ - error = priv_check (td, PRIV_DRIVER); - if (error) - return error; - s = splimp (); - CE_LOCK (bd); - ce_set_lloop (c, *(int*)data); - CE_UNLOCK (bd); - splx (s); - return 0; - - case SERIAL_GETRLOOP: - CE_DEBUG2 (d, ("ioctl: getrloop\n")); - if (c->type != T_E1) - return EINVAL; - *(int*)data = c->rloop; - return 0; - - case SERIAL_SETRLOOP: - CE_DEBUG2 (d, ("ioctl: setloop\n")); - if (c->type != T_E1) - return EINVAL; - /* Only for superuser! */ - error = priv_check (td, PRIV_DRIVER); - if (error) - return error; - s = splimp (); - CE_LOCK (bd); - ce_set_rloop (c, *(int*)data); - CE_UNLOCK (bd); - splx (s); - return 0; - - case SERIAL_GETDEBUG: - CE_DEBUG2 (d, ("ioctl: getdebug\n")); - *(int*)data = d->chan->debug; - return 0; - - case SERIAL_SETDEBUG: - CE_DEBUG2 (d, ("ioctl: setdebug\n")); - /* Only for superuser! */ - error = priv_check (td, PRIV_DRIVER); - if (error) - return error; - d->chan->debug = *(int*)data; - return 0; - - case SERIAL_GETBAUD: - CE_DEBUG2 (d, ("ioctl: getbaud\n")); - *(long*)data = c->baud; - return 0; - - case SERIAL_SETBAUD: - CE_DEBUG2 (d, ("ioctl: setbaud\n")); - if (c->type != T_E1 || !c->unfram) - return EINVAL; - /* Only for superuser! */ - error = priv_check (td, PRIV_DRIVER); - if (error) - return error; - s = splimp (); - CE_LOCK (bd); - ce_set_baud (c, *(long*)data); - CE_UNLOCK (bd); - splx (s); - return 0; - - case SERIAL_GETTIMESLOTS: - CE_DEBUG2 (d, ("ioctl: gettimeslots\n")); - if ((c->type != T_E1 || c->unfram) && c->type != T_DATA) - return EINVAL; - *(u_long*)data = c->ts; - return 0; - - case SERIAL_SETTIMESLOTS: - CE_DEBUG2 (d, ("ioctl: settimeslots\n")); - /* Only for superuser! */ - error = priv_check (td, PRIV_DRIVER); - if (error) - return error; - if ((c->type != T_E1 || c->unfram) && c->type != T_DATA) - return EINVAL; - s = splimp (); - CE_LOCK (bd); - ce_set_ts (c, *(u_long*)data); - CE_UNLOCK (bd); - splx (s); - return 0; - - case SERIAL_GETHIGAIN: - CE_DEBUG2 (d, ("ioctl: gethigain\n")); - if (c->type != T_E1) - return EINVAL; - *(int*)data = c->higain; - return 0; - - case SERIAL_SETHIGAIN: - CE_DEBUG2 (d, ("ioctl: sethigain\n")); - if (c->type != T_E1) - return EINVAL; - /* Only for superuser! */ - error = priv_check (td, PRIV_DRIVER); - if (error) - return error; - s = splimp (); - CE_LOCK (bd); - ce_set_higain (c, *(int*)data); - CE_UNLOCK (bd); - splx (s); - return 0; - - case SERIAL_GETPHONY: - CE_DEBUG2 (d, ("ioctl: getphony\n")); - *(int*)data = c->phony; - return 0; - - case SERIAL_SETPHONY: - CE_DEBUG2 (d, ("ioctl: setphony\n")); - /* Only for superuser! */ - error = priv_check (td, PRIV_DRIVER); - if (error) - return error; - s = splimp (); - CE_LOCK (bd); - ce_set_phony (c, *(int*)data); - CE_UNLOCK (bd); - splx (s); - return 0; - - case SERIAL_GETUNFRAM: - CE_DEBUG2 (d, ("ioctl: getunfram\n")); - if (c->type != T_E1 || c->num != 0) - return EINVAL; - *(int*)data = c->unfram; - return 0; - - case SERIAL_SETUNFRAM: - CE_DEBUG2 (d, ("ioctl: setunfram\n")); - if (c->type != T_E1 || c->num != 0) - return EINVAL; - /* Only for superuser! */ - error = priv_check (td, PRIV_DRIVER); - if (error) - return error; - s = splimp (); - CE_LOCK (bd); - ce_set_unfram (c, *(int*)data); - CE_UNLOCK (bd); - splx (s); - return 0; - - case SERIAL_GETSCRAMBLER: - CE_DEBUG2 (d, ("ioctl: getscrambler\n")); - if (!c->unfram) - return EINVAL; - *(int*)data = c->scrambler; - return 0; - - case SERIAL_SETSCRAMBLER: - CE_DEBUG2 (d, ("ioctl: setscrambler\n")); - /* Only for superuser! */ - error = priv_check (td, PRIV_DRIVER); - if (error) - return error; - if (!c->unfram) - return EINVAL; - s = splimp (); - CE_LOCK (bd); - ce_set_scrambler (c, *(int*)data); - CE_UNLOCK (bd); - splx (s); - return 0; - - case SERIAL_GETMONITOR: - CE_DEBUG2 (d, ("ioctl: getmonitor\n")); - if (c->type != T_E1) - return EINVAL; - *(int*)data = c->monitor; - return 0; - - case SERIAL_SETMONITOR: - CE_DEBUG2 (d, ("ioctl: setmonitor\n")); - /* Only for superuser! */ - error = priv_check (td, PRIV_DRIVER); - if (error) - return error; - if (c->type != T_E1) - return EINVAL; - s = splimp (); - CE_LOCK (bd); - ce_set_monitor (c, *(int*)data); - CE_UNLOCK (bd); - splx (s); - return 0; - - case SERIAL_GETUSE16: - CE_DEBUG2 (d, ("ioctl: getuse16\n")); - if (c->type != T_E1 || c->unfram) - return EINVAL; - *(int*)data = c->use16; - return 0; - - case SERIAL_SETUSE16: - CE_DEBUG2 (d, ("ioctl: setuse16\n")); - /* Only for superuser! */ - error = priv_check (td, PRIV_DRIVER); - if (error) - return error; - if (c->type != T_E1) - return EINVAL; - s = splimp (); - CE_LOCK (bd); - ce_set_use16 (c, *(int*)data); - CE_UNLOCK (bd); - splx (s); - return 0; - - case SERIAL_GETCRC4: - CE_DEBUG2 (d, ("ioctl: getcrc4\n")); - if (c->type != T_E1 || c->unfram) - return EINVAL; - *(int*)data = c->crc4; - return 0; - - case SERIAL_SETCRC4: - CE_DEBUG2 (d, ("ioctl: setcrc4\n")); - /* Only for superuser! */ - error = priv_check (td, PRIV_DRIVER); - if (error) - return error; - if (c->type != T_E1 || c->unfram) - return EINVAL; - s = splimp (); - CE_LOCK (bd); - ce_set_crc4 (c, *(int*)data); - CE_UNLOCK (bd); - splx (s); - return 0; - - case SERIAL_GETCLK: - CE_DEBUG2 (d, ("ioctl: getclk\n")); - if (c->type != T_E1) - return EINVAL; - switch (c->gsyn) { - default: *(int*)data = E1CLK_INTERNAL; break; - case GSYN_RCV: *(int*)data = E1CLK_RECEIVE; break; - case GSYN_RCV0: *(int*)data = E1CLK_RECEIVE_CHAN0; break; - case GSYN_RCV1: *(int*)data = E1CLK_RECEIVE_CHAN1; break; - } - return 0; - - case SERIAL_SETCLK: - CE_DEBUG2 (d, ("ioctl: setclk\n")); - /* Only for superuser! */ - error = priv_check (td, PRIV_DRIVER); - if (error) - return error; - if (c->type != T_E1) - return EINVAL; - s = splimp (); - CE_LOCK (bd); - switch (*(int*)data) { - default: ce_set_gsyn (c, GSYN_INT); break; - case E1CLK_RECEIVE: ce_set_gsyn (c, GSYN_RCV); break; - case E1CLK_RECEIVE_CHAN0: ce_set_gsyn (c, GSYN_RCV0); break; - case E1CLK_RECEIVE_CHAN1: ce_set_gsyn (c, GSYN_RCV1); break; - } - CE_UNLOCK (bd); - splx (s); - return 0; - -#if 0 - case SERIAL_RESET: - CE_DEBUG2 (d, ("ioctl: reset\n")); - /* Only for superuser! */ - error = priv_check (td, PRIV_DRIVER); - if (error) - return error; - s = splimp (); - CE_LOCK (bd); -/* ce_reset (c->board, 0, 0);*/ - CE_UNLOCK (bd); - splx (s); - return 0; - - case SERIAL_HARDRESET: - CE_DEBUG2 (d, ("ioctl: hardreset\n")); - /* Only for superuser! */ - error = priv_check (td, PRIV_DRIVER); - if (error) - return error; - s = splimp (); - CE_LOCK (bd); - /* hard_reset (c->board); */ - CE_UNLOCK (bd); - splx (s); - return 0; -#endif - - case SERIAL_GETCABLE: - CE_DEBUG2 (d, ("ioctl: getcable\n")); - if (c->type != T_E1) - return EINVAL; - s = splimp (); - CE_LOCK (bd); - *(int*)data = CABLE_TP; - CE_UNLOCK (bd); - splx (s); - return 0; - - case SERIAL_GETDIR: - CE_DEBUG2 (d, ("ioctl: getdir\n")); - if (c->type != T_E1 && c->type != T_DATA) - return EINVAL; - *(int*)data = c->dir; - return 0; - - case SERIAL_SETDIR: - CE_DEBUG2 (d, ("ioctl: setdir\n")); - /* Only for superuser! */ - error = priv_check (td, PRIV_DRIVER); - if (error) - return error; - s = splimp (); - CE_LOCK (bd); - ce_set_dir (c, *(int*)data); - CE_UNLOCK (bd); - splx (s); - return 0; - - case TIOCSDTR: /* Set DTR */ - s = splimp (); - CE_LOCK (bd); - ce_set_dtr (c, 1); - CE_UNLOCK (bd); - splx (s); - return 0; - - case TIOCCDTR: /* Clear DTR */ - s = splimp (); - CE_LOCK (bd); - ce_set_dtr (c, 0); - CE_UNLOCK (bd); - splx (s); - return 0; - - case TIOCMSET: /* Set DTR/RTS */ - s = splimp (); - CE_LOCK (bd); - ce_set_dtr (c, (*(int*)data & TIOCM_DTR) ? 1 : 0); - ce_set_rts (c, (*(int*)data & TIOCM_RTS) ? 1 : 0); - CE_UNLOCK (bd); - splx (s); - return 0; - - case TIOCMBIS: /* Add DTR/RTS */ - s = splimp (); - CE_LOCK (bd); - if (*(int*)data & TIOCM_DTR) ce_set_dtr (c, 1); - if (*(int*)data & TIOCM_RTS) ce_set_rts (c, 1); - CE_UNLOCK (bd); - splx (s); - return 0; - - case TIOCMBIC: /* Clear DTR/RTS */ - s = splimp (); - CE_LOCK (bd); - if (*(int*)data & TIOCM_DTR) ce_set_dtr (c, 0); - if (*(int*)data & TIOCM_RTS) ce_set_rts (c, 0); - CE_UNLOCK (bd); - splx (s); - return 0; - - case TIOCMGET: /* Get modem status */ - *(int*)data = ce_modem_status (c); - return 0; - } - return ENOTTY; -} - -static int ng_ce_constructor (node_p node) -{ - drv_t *d = NG_NODE_PRIVATE (node); - CE_DEBUG (d, ("Constructor\n")); - return EINVAL; -} - -static int ng_ce_newhook (node_p node, hook_p hook, const char *name) -{ - int s; - drv_t *d = NG_NODE_PRIVATE (node); - bdrv_t *bd = d->board->sys; - - CE_DEBUG (d, ("Newhook\n")); - /* Attach debug hook */ - if (strcmp (name, NG_CE_HOOK_DEBUG) == 0) { - NG_HOOK_SET_PRIVATE (hook, NULL); - d->debug_hook = hook; - return 0; - } - - /* Check for raw hook */ - if (strcmp (name, NG_CE_HOOK_RAW) != 0) - return EINVAL; - - NG_HOOK_SET_PRIVATE (hook, d); - d->hook = hook; - s = splimp (); - CE_LOCK (bd); - ce_up (d); - CE_UNLOCK (bd); - splx (s); - return 0; -} - -static char *format_timeslots (u_long s) -{ - static char buf [100]; - char *p = buf; - int i; - - for (i=1; i<32; ++i) - if ((s >> i) & 1) { - int prev = (i > 1) & (s >> (i-1)); - int next = (i < 31) & (s >> (i+1)); - - if (prev) { - if (next) - continue; - *p++ = '-'; - } else if (p > buf) - *p++ = ','; - - if (i >= 10) - *p++ = '0' + i / 10; - *p++ = '0' + i % 10; - } - *p = 0; - return buf; -} - -static int print_modems (char *s, ce_chan_t *c, int need_header) -{ - int status = ce_modem_status (c); - int length = 0; - - if (need_header) - length += sprintf (s + length, " LE DTR DSR RTS CTS CD\n"); - length += sprintf (s + length, "%4s %4s %4s %4s %4s %4s\n", - status & TIOCM_LE ? "On" : "-", - status & TIOCM_DTR ? "On" : "-", - status & TIOCM_DSR ? "On" : "-", - status & TIOCM_RTS ? "On" : "-", - status & TIOCM_CTS ? "On" : "-", - status & TIOCM_CD ? "On" : "-"); - return length; -} - -static int print_stats (char *s, ce_chan_t *c, int need_header) -{ - int length = 0; - - if (need_header) - length += sprintf (s + length, " Rintr Tintr Mintr Ibytes Ipkts Ierrs Obytes Opkts Oerrs\n"); - length += sprintf (s + length, "%7ld %7ld %7ld %8lu %7ld %7ld %8lu %7ld %7ld\n", - c->rintr, c->tintr, 0l, (unsigned long) c->ibytes, - c->ipkts, c->overrun + c->frame + c->crc, - (unsigned long) c->obytes, c->opkts, c->underrun); - return length; -} - -static char *format_e1_status (u_char status) -{ - static char buf [80]; - - if (status & E1_NOALARM) - return "Ok"; - buf[0] = 0; - if (status & E1_LOS) strcat (buf, ",LOS"); - if (status & E1_AIS) strcat (buf, ",AIS"); - if (status & E1_LOF) strcat (buf, ",LOF"); - if (status & E1_LOMF) strcat (buf, ",LOMF"); - if (status & E1_FARLOF) strcat (buf, ",FARLOF"); - if (status & E1_AIS16) strcat (buf, ",AIS16"); - if (status & E1_FARLOMF) strcat (buf, ",FARLOMF"); - if (status & E1_TSTREQ) strcat (buf, ",TSTREQ"); - if (status & E1_TSTERR) strcat (buf, ",TSTERR"); - if (buf[0] == ',') - return buf+1; - return "Unknown"; -} - -static int print_frac (char *s, int leftalign, u_long numerator, u_long divider) -{ - int n, length = 0; - - if (numerator < 1 || divider < 1) { - length += sprintf (s+length, leftalign ? "/- " : " -"); - return length; - } - n = (int) (0.5 + 1000.0 * numerator / divider); - if (n < 1000) { - length += sprintf (s+length, leftalign ? "/.%-3d" : " .%03d", n); - return length; - } - *(s + length) = leftalign ? '/' : ' '; - length ++; - - if (n >= 1000000) n = (n+500) / 1000 * 1000; - else if (n >= 100000) n = (n+50) / 100 * 100; - else if (n >= 10000) n = (n+5) / 10 * 10; - - switch (n) { - case 1000: length += printf (s+length, ".999"); return length; - case 10000: n = 9990; break; - case 100000: n = 99900; break; - case 1000000: n = 999000; break; - } - if (n < 10000) length += sprintf (s+length, "%d.%d", n/1000, n/10%100); - else if (n < 100000) length += sprintf (s+length, "%d.%d", n/1000, n/100%10); - else if (n < 1000000) length += sprintf (s+length, "%d.", n/1000); - else length += sprintf (s+length, "%d", n/1000); - - return length; -} - -static int print_e1_stats (char *s, ce_chan_t *c) -{ - struct e1_counters total; - u_long totsec; - int length = 0; - - totsec = c->totsec + c->cursec; - total.bpv = c->total.bpv + c->currnt.bpv; - total.fse = c->total.fse + c->currnt.fse; - total.crce = c->total.crce + c->currnt.crce; - total.rcrce = c->total.rcrce + c->currnt.rcrce; - total.uas = c->total.uas + c->currnt.uas; - total.les = c->total.les + c->currnt.les; - total.es = c->total.es + c->currnt.es; - total.bes = c->total.bes + c->currnt.bes; - total.ses = c->total.ses + c->currnt.ses; - total.oofs = c->total.oofs + c->currnt.oofs; - total.css = c->total.css + c->currnt.css; - total.dm = c->total.dm + c->currnt.dm; - - length += sprintf (s + length, " Unav/Degr Bpv/Fsyn CRC/RCRC Err/Lerr Sev/Bur Oof/Slp Status\n"); - - /* Unavailable seconds, degraded minutes */ - length += print_frac (s + length, 0, c->currnt.uas, c->cursec); - length += print_frac (s + length, 1, 60 * c->currnt.dm, c->cursec); - - /* Bipolar violations, frame sync errors */ - length += print_frac (s + length, 0, c->currnt.bpv, c->cursec); - length += print_frac (s + length, 1, c->currnt.fse, c->cursec); - - /* CRC errors, remote CRC errors (E-bit) */ - length += print_frac (s + length, 0, c->currnt.crce, c->cursec); - length += print_frac (s + length, 1, c->currnt.rcrce, c->cursec); - - /* Errored seconds, line errored seconds */ - length += print_frac (s + length, 0, c->currnt.es, c->cursec); - length += print_frac (s + length, 1, c->currnt.les, c->cursec); - - /* Severely errored seconds, burst errored seconds */ - length += print_frac (s + length, 0, c->currnt.ses, c->cursec); - length += print_frac (s + length, 1, c->currnt.bes, c->cursec); - - /* Out of frame seconds, controlled slip seconds */ - length += print_frac (s + length, 0, c->currnt.oofs, c->cursec); - length += print_frac (s + length, 1, c->currnt.css, c->cursec); - - length += sprintf (s + length, " %s\n", format_e1_status (c->status)); - - /* Print total statistics. */ - length += print_frac (s + length, 0, total.uas, totsec); - length += print_frac (s + length, 1, 60 * total.dm, totsec); - - length += print_frac (s + length, 0, total.bpv, totsec); - length += print_frac (s + length, 1, total.fse, totsec); - - length += print_frac (s + length, 0, total.crce, totsec); - length += print_frac (s + length, 1, total.rcrce, totsec); - - length += print_frac (s + length, 0, total.es, totsec); - length += print_frac (s + length, 1, total.les, totsec); - - length += print_frac (s + length, 0, total.ses, totsec); - length += print_frac (s + length, 1, total.bes, totsec); - - length += print_frac (s + length, 0, total.oofs, totsec); - length += print_frac (s + length, 1, total.css, totsec); - - length += sprintf (s + length, " -- Total\n"); - return length; -} - -static int print_chan (char *s, ce_chan_t *c) -{ - drv_t *d = c->sys; - int length = 0; - - length += sprintf (s + length, "ce%d", c->board->num * NCHAN + c->num); - if (d->chan->debug) - length += sprintf (s + length, " debug=%d", d->chan->debug); - - if (c->board->mux) { - length += sprintf (s + length, " cfg=C"); - } else { - length += sprintf (s + length, " cfg=A"); - } - - if (c->baud) - length += sprintf (s + length, " %ld", c->baud); - else - length += sprintf (s + length, " extclock"); - - if (c->type == T_E1) - switch (c->gsyn) { - case GSYN_INT : length += sprintf (s + length, " syn=int"); break; - case GSYN_RCV : length += sprintf (s + length, " syn=rcv"); break; - case GSYN_RCV0 : length += sprintf (s + length, " syn=rcv0"); break; - case GSYN_RCV1 : length += sprintf (s + length, " syn=rcv1"); break; - } - if (c->type == T_E1) - length += sprintf (s + length, " higain=%s", c->higain ? "on" : "off"); - - length += sprintf (s + length, " loop=%s", c->lloop ? "on" : "off"); - - if (c->type == T_E1) - length += sprintf (s + length, " ts=%s", format_timeslots (c->ts)); - length += sprintf (s + length, "\n"); - return length; -} - -static int ng_ce_rcvmsg (node_p node, item_p item, hook_p lasthook) -{ - drv_t *d = NG_NODE_PRIVATE (node); - struct ng_mesg *msg; - struct ng_mesg *resp = NULL; - int error = 0; - - CE_DEBUG (d, ("Rcvmsg\n")); - NGI_GET_MSG (item, msg); - switch (msg->header.typecookie) { - default: - error = EINVAL; - break; - - case NGM_CE_COOKIE: - printf ("Not implemented yet\n"); - error = EINVAL; - break; - - case NGM_GENERIC_COOKIE: - switch (msg->header.cmd) { - default: - error = EINVAL; - break; - - case NGM_TEXT_STATUS: { - char *s; - int l = 0; - int dl = sizeof (struct ng_mesg) + 730; - - NG_MKRESPONSE (resp, msg, dl, M_NOWAIT); - if (! resp) { - error = ENOMEM; - break; - } - s = (resp)->data; - if (d) { - l += print_chan (s + l, d->chan); - l += print_stats (s + l, d->chan, 1); - l += print_modems (s + l, d->chan, 1); - l += print_e1_stats (s + l, d->chan); - } else - l += sprintf (s + l, "Error: node not connect to channel"); - strncpy ((resp)->header.cmdstr, "status", NG_CMDSTRSIZ); - } - break; - } - break; - } - NG_RESPOND_MSG (error, node, item, resp); - NG_FREE_MSG (msg); - return error; -} - -static int ng_ce_rcvdata (hook_p hook, item_p item) -{ - drv_t *d = NG_NODE_PRIVATE (NG_HOOK_NODE(hook)); - struct mbuf *m; - struct ng_tag_prio *ptag; - bdrv_t *bd = d->board->sys; - struct ifqueue *q; - int s; - - CE_DEBUG2 (d, ("Rcvdata\n")); - NGI_GET_M (item, m); - NG_FREE_ITEM (item); - if (! NG_HOOK_PRIVATE (hook) || ! d) { - NG_FREE_M (m); - return ENETDOWN; - } - - /* Check for high priority data */ - if ((ptag = (struct ng_tag_prio *)m_tag_locate(m, NGM_GENERIC_COOKIE, - NG_TAG_PRIO, NULL)) != NULL && (ptag->priority > NG_PRIO_CUTOFF) ) - q = &d->hi_queue; - else - q = &d->queue; - - s = splimp (); - CE_LOCK (bd); - IF_LOCK (q); - if (_IF_QFULL (q)) { - IF_UNLOCK (q); - CE_UNLOCK (bd); - splx (s); - NG_FREE_M (m); - return ENOBUFS; - } - _IF_ENQUEUE (q, m); - IF_UNLOCK (q); - ce_start (d); - CE_UNLOCK (bd); - splx (s); - return 0; -} - -static int ng_ce_rmnode (node_p node) -{ - drv_t *d = NG_NODE_PRIVATE (node); - - CE_DEBUG (d, ("Rmnode\n")); - if (d && d->running) { - bdrv_t *bd = d->board->sys; - int s = splimp (); - CE_LOCK (bd); - ce_down (d); - CE_UNLOCK (bd); - splx (s); - } -#ifdef KLD_MODULE - if (node->nd_flags & NGF_REALLY_DIE) { - NG_NODE_SET_PRIVATE (node, NULL); - NG_NODE_UNREF (node); - } - NG_NODE_REVIVE(node); /* Persistent node */ -#endif - return 0; -} - -static int ng_ce_connect (hook_p hook) -{ - drv_t *d = NG_NODE_PRIVATE (NG_HOOK_NODE (hook)); - - if (d) { - CE_DEBUG (d, ("Connect\n")); - callout_reset (&d->timeout_handle, hz, ce_watchdog_timer, d); - } - - return 0; -} - -static int ng_ce_disconnect (hook_p hook) -{ - drv_t *d = NG_NODE_PRIVATE (NG_HOOK_NODE (hook)); - - if (d) { - CE_DEBUG (d, ("Disconnect\n")); - if (NG_HOOK_PRIVATE (hook)) - { - bdrv_t *bd = d->board->sys; - int s = splimp (); - CE_LOCK (bd); - ce_down (d); - CE_UNLOCK (bd); - splx (s); - } - /* If we were wait it than it reasserted now, just stop it. */ - if (!callout_drain (&d->timeout_handle)) - callout_stop (&d->timeout_handle); - } - return 0; -} - -static int ce_modevent (module_t mod, int type, void *unused) -{ - static int load_count = 0; - - - switch (type) { - case MOD_LOAD: - if (ng_newtype (&typestruct)) - printf ("Failed to register ng_ce\n"); - ++load_count; - callout_init (&timeout_handle, 1); - callout_reset (&timeout_handle, hz*5, ce_timeout, 0); - break; - case MOD_UNLOAD: - if (load_count == 1) { - printf ("Removing device entry for Tau32-PCI\n"); - ng_rmtype (&typestruct); - } - /* If we were wait it than it reasserted now, just stop it. - * Actually we shouldn't get this condition. But code could be - * changed in the future, so just be a litle paranoid. - */ - if (!callout_drain (&timeout_handle)) - callout_stop (&timeout_handle); - --load_count; - break; - case MOD_SHUTDOWN: - break; - } - return 0; -} - -static struct ng_type typestruct = { - .version = NG_ABI_VERSION, - .name = NG_CE_NODE_TYPE, - .constructor = ng_ce_constructor, - .rcvmsg = ng_ce_rcvmsg, - .shutdown = ng_ce_rmnode, - .newhook = ng_ce_newhook, - .connect = ng_ce_connect, - .rcvdata = ng_ce_rcvdata, - .disconnect = ng_ce_disconnect, -}; - - -MODULE_DEPEND (ng_ce, netgraph, NG_ABI_VERSION, NG_ABI_VERSION, NG_ABI_VERSION); -#ifdef KLD_MODULE -DRIVER_MODULE (cemod, pci, ce_driver, ce_modevent, NULL); -#else -DRIVER_MODULE (ce, pci, ce_driver, ce_modevent, NULL); -#endif diff --git a/sys/dev/ce/machdep.h b/sys/dev/ce/machdep.h deleted file mode 100644 index 2f8dbfa816d7..000000000000 --- a/sys/dev/ce/machdep.h +++ /dev/null @@ -1,89 +0,0 @@ -/*- - * Cronyx DDK: platform dependent definitions. - * - * Copyright (C) 1998-1999 Cronyx Engineering - * Author: Alexander Kvitchenko, - * - * Copyright (C) 2001-2003 Cronyx Engineering. - * Author: Roman Kurakin, - * - * This software is distributed with NO WARRANTIES, not even the implied - * warranties for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. - * - * Authors grant any other persons or organisations permission to use - * or modify this software as long as this message is kept with the software, - * all derivative works or modified versions. - * - * Cronyx Id: machdep.h,v 1.3.4.3 2003/11/27 14:21:58 rik Exp $ - * $FreeBSD$ - */ - -/* - * DOS (Borland Turbo C++ 1.0) - */ -#if defined (MSDOS) || defined (__MSDOS__) -# include -# include -# define inb(port) inportb(port) -# define inw(port) inport(port) -# define outb(port,b) outportb(port,b) -# define outw(port,w) outport(port,w) -# define GETTICKS() biostime(0,0L) -#else - -/* - * Windows NT - */ -#ifdef NDIS_MINIPORT_DRIVER -# include -# define inb(port) inp((unsigned short)(port)) -# define inw(port) inpw((unsigned short)(port)) -# define outb(port,b) outp((unsigned short)(port),b) -# define outw(port,w) outpw((unsigned short)(port),(unsigned short)(w)) -#pragma warning (disable: 4761) -#pragma warning (disable: 4242) -#pragma warning (disable: 4244) -#define ulong64 unsigned __int64 -#else - -/* - * Linux - */ -#ifdef __linux__ -# undef REALLY_SLOW_IO -# include /* should swap outb() arguments */ -# include -# include - static inline void __ddk_outb (unsigned port, unsigned char byte) - { outb (byte, port); } - static inline void __ddk_outw (unsigned port, unsigned short word) - { outw (word, port); } -# undef outb -# undef outw -# define outb(port,val) __ddk_outb(port, val) -# define outw(port,val) __ddk_outw(port, val) -# define GETTICKS() (jiffies * 200 / 11 / HZ) -#else - -/* - * FreeBSD and BSD/OS - */ -#ifdef __FreeBSD__ -# include -# include -# include -# include -# define port_t int -#endif - -#endif -#endif -#endif - -#ifndef inline -# define inline __inline__ -#endif - -#ifndef ulong64 -#define ulong64 unsigned long long -#endif diff --git a/sys/dev/ce/ng_ce.h b/sys/dev/ce/ng_ce.h deleted file mode 100644 index d466197647c1..000000000000 --- a/sys/dev/ce/ng_ce.h +++ /dev/null @@ -1,27 +0,0 @@ -/* - * Defines for Cronyx Tau32-PCI adapter driver. - * - * Copyright (C) 2004 Cronyx Engineering. - * Copyright (C) 2004 Kurakin Roman, - * - * This software is distributed with NO WARRANTIES, not even the implied - * warranties for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. - * - * Authors grant any other persons or organisations a permission to use, - * modify and redistribute this software in source and binary forms, - * as long as this message is kept with the software, all derivative - * works or modified versions. - * - * $Cronyx: ng_ce.h,v 1.2 2005/04/23 20:11:57 rik Exp $ - * $FreeBSD$ - */ - -#ifndef _CE_NETGRAPH_H_ -#define _CE_NETGRAPH_H_ - -#define NG_CE_NODE_TYPE "ce" -#define NGM_CE_COOKIE 1083172653 -#define NG_CE_HOOK_RAW "rawdata" -#define NG_CE_HOOK_DEBUG "debug" - -#endif /* _CE_NETGRAPH_H_ */ diff --git a/sys/dev/ce/tau32-ddk.c b/sys/dev/ce/tau32-ddk.c deleted file mode 100644 index 262c8ab38056..000000000000 --- a/sys/dev/ce/tau32-ddk.c +++ /dev/null @@ -1,4338 +0,0 @@ -/* - * DDK (Driver Development Kit) for Cronyx Tau32-PCI adapter. - * - * Copyright (C) 2003-2006 Cronyx Engineering, http://www.cronyx.ru - * All rights reserved. - * - * Author: Leo Yuriev , http://leo.yuriev.ru - * - * This software is distributed with NO WARRANTIES, not even the implied - * warranties for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. - * - * Authors grant any other persons or organisations a permission to use, - * modify and redistribute this software in source and binary forms, - * as long as this message is kept with the software, all derivative - * works or modified versions. - * - * !!! DO NOT EDIT THIS FILE, - * IT IS GENERATED AUTOMATICALY FROM DDK SOURCES !!! - * - * $Cronyx: tau32-ddk.comment,v 1.1 2006/02/01 09:15:26 ly Exp $ - * $Rik: tau32-ddk.c,v 1.8 2006/02/28 22:33:37 rik Exp $ - */ - -#include -__FBSDID("$FreeBSD$"); - -#ifndef __noinline -# ifdef __GNUC__ -# if __GNUC__ >= 3 -# define __noinline __attribute__((noinline)) -# else -# define __noinline -# endif -# else -# define __noinline __declspec(noinline) -# endif -#endif - -#ifdef __GNUC__ -# ifndef __stdcall -# define __stdcall __attribute__((stdcall)) -# endif -# ifndef __fastcall -# define __fastcall __attribute__((stdcall, regparm(3))) -# endif -# ifndef __forceinline -# if __GNUC__ >= 3 -# define __forceinline __inline__ __attribute__((always_inline)) -# else -# define __forceinline __inline__ -# endif -# endif -# ifndef ASSUME -# define ASSUME(x) {} -# endif -#else -# ifndef ASSUME -# define ASSUME(x) __assume(x) -# endif -#endif - -#if !defined(__builtin_expect) || !defined(__GNUC__) || (__GNUC__ == 2 && __GNUC_MINOR__ < 96) -# define __builtin_expect(x,y) (x) -#endif -/* - Obfuscated by COBF (version 1.06 2004-09-09 by BB/Ly) at Tue Feb 21 20:27:00 2006 -*/ -typedef struct qjBs22{unsigned char lPHda,g5AWi;unsigned char IG7lN3, -GISTQ2;}Rf7MZ2;typedef unsigned char ZvgAS1[0140];typedef struct -bUn1g2{unsigned char CCKdO2,HZ1wC3;unsigned char XmIKi3;}Drk7M4; -typedef struct hmPCQ4 kWMzp1;typedef struct a7Wgv QDNE6;typedef struct -M32Pg1 oSdJm;typedef union GmdgD3 GFihS3;typedef struct vVvN92 aVC_r1 -;typedef void(__attribute__((cdecl)) *ypUaz)(oSdJm*WZ0in2,QDNE6* -a02Gz4);typedef void(__attribute__((cdecl)) *nEC5K2)(oSdJm*WZ0in2,int -VgzJp1,unsigned CE5Mv);typedef void(__attribute__((cdecl)) *MhiF14)( -oSdJm*WZ0in2,int b9Zs_,unsigned UYtd71,unsigned iBs7A2);typedef void( -__attribute__((cdecl)) *cLIGU1)(oSdJm*WZ0in2,aVC_r1*Psq0V3);union -GmdgD3{unsigned long c2Xt35,h5sB05;};struct vVvN92{void*bPudJ3; -unsigned long Mm5QG4;unsigned LigBO2,ZGMLO4,G4lKW2;unsigned n1IfW3, -hJ2ft1,iwn402;cLIGU1 JbjvO4;};typedef struct HLLm6{unsigned long -lpVV64;unsigned long smyqr;unsigned long QV1Pb3;unsigned long mZSLK1; -unsigned long zwLFt3;unsigned long ounCU4;unsigned long _xj3V4; -unsigned long H4ghS2;unsigned long yTR5N3[4u];}RUTWu4;struct M32Pg1{ -kWMzp1*kK4Tl;unsigned long jDVZJ2;void*Y3IxL2;nEC5K2 b_7cQ4;nEC5K2 -yjdp7;void*u6eGG1;unsigned EFekl2;int QhwfE1;int NNm8q;unsigned cJw4g2 -;unsigned long RMAeN;unsigned jfimS4;unsigned eR4Uq4;unsigned c7Vnu1; -unsigned U6oXn4;RUTWu4 io7IZ3[2];};struct a7Wgv{void*bPudJ3;unsigned -QvZLK;ypUaz JbjvO4;unsigned long j5MYx;union{unsigned jzTeK2;struct{ -unsigned LigBO2;unsigned long sxr445;unsigned long kF78X1;}NNh015; -struct{int b9Zs_;unsigned long sxr445;unsigned long W0jOn2;}gMQg82; -struct{unsigned LigBO2;unsigned long Avyuu1;unsigned Fcabx;unsigned -BLFVJ4;}uwYQG1;struct{unsigned LigBO2;unsigned long Avyuu1;unsigned -r9yJB;unsigned n1IfW3;int bc1R53;}JI0PC2;int Or9Ds4;union{Rf7MZ2 -duPf84[32];unsigned long M__vR3[32];}sN5Zi1;}NpyOc1;};void -__attribute__((cdecl))TAU32_BeforeReset(oSdJm*YRHFy);int __attribute__ -((cdecl))TAU32_Initialize(oSdJm*YRHFy,int FH0RH2);void __attribute__( -(cdecl))TAU32_DestructiveHalt(kWMzp1*kK4Tl,int mdbib4);int -__attribute__((cdecl))TAU32_IsInterruptPending(kWMzp1*kK4Tl);int -__attribute__((cdecl))TAU32_HandleInterrupt(kWMzp1*kK4Tl);extern -unsigned const TAU32_ControllerObjectSize;void __attribute__((cdecl))TAU32_EnableInterrupts -(kWMzp1*kK4Tl);void __attribute__((cdecl))TAU32_DisableInterrupts( -kWMzp1*kK4Tl);int __attribute__((cdecl))TAU32_SubmitRequest(kWMzp1* -kK4Tl,QDNE6*wkiYO4);int __attribute__((cdecl))TAU32_CancelRequest( -kWMzp1*kK4Tl,QDNE6*wkiYO4,int pTM6S);void __attribute__((cdecl))TAU32_LedBlink -(kWMzp1*kK4Tl);void __attribute__((cdecl))TAU32_LedSet(kWMzp1*kK4Tl, -int xkMXp);int __attribute__((cdecl))TAU32_SetCasIo(kWMzp1*kK4Tl,int -qUKv12);unsigned long long __attribute__((cdecl))TAU32_ProbeGeneratorFrequency -(unsigned long long rMB_y4);unsigned long long __attribute__((cdecl))TAU32_SetGeneratorFrequency -(kWMzp1*kK4Tl,unsigned long long rMB_y4);int __attribute__((cdecl))TAU32_SetSyncMode -(kWMzp1*kK4Tl,unsigned JzUUv2);int __attribute__((cdecl))TAU32_SetCrossMatrix -(kWMzp1*kK4Tl,unsigned char*eCQDF,unsigned long m45Hf);int -__attribute__((cdecl))TAU32_SetIdleCodes(kWMzp1*kK4Tl,unsigned char* -PTDns3);int __attribute__((cdecl))TAU32_UpdateIdleCodes(kWMzp1*kK4Tl, -int b9Zs_,unsigned long dJtvs,unsigned char vxVZP);int __attribute__( -(cdecl))TAU32_SetSaCross(kWMzp1*kK4Tl,Drk7M4 Uwhrn4);int __attribute__ -((cdecl))TAU32_FifoPutCasAppend(kWMzp1*kK4Tl,int b9Zs_,unsigned char* -X3ca,unsigned IOwwG2);int __attribute__((cdecl))TAU32_FifoPutCasAhead -(kWMzp1*kK4Tl,int b9Zs_,unsigned char*X3ca,unsigned IOwwG2);int -__attribute__((cdecl))TAU32_FifoGetCas(kWMzp1*kK4Tl,int b9Zs_, -unsigned char*X3ca,unsigned IOwwG2);int __attribute__((cdecl))TAU32_FifoPutFasAppend -(kWMzp1*kK4Tl,int b9Zs_,unsigned char*X3ca,unsigned IOwwG2);int -__attribute__((cdecl))TAU32_FifoPutFasAhead(kWMzp1*kK4Tl,int b9Zs_, -unsigned char*X3ca,unsigned IOwwG2);int __attribute__((cdecl))TAU32_FifoGetFas -(kWMzp1*kK4Tl,int b9Zs_,unsigned char*X3ca,unsigned IOwwG2);int -__attribute__((cdecl))TAU32_SetFifoTrigger(kWMzp1*kK4Tl,int b9Zs_, -unsigned UYtd71,unsigned iBs7A2,MhiF14 IkJYR1);void __attribute__(( -cdecl))TAU32_ReadTsc(kWMzp1*kK4Tl,GFihS3*Q7gY12);unsigned long -__attribute__((cdecl))TAU32_Diag(kWMzp1*kK4Tl,unsigned Smebz2, -unsigned long a0Zcs);typedef struct mv21h{unsigned char E7Ual2,W4f921 -,kgEeY3,_Oqi51,x2RgK4,PBtXm1,TIQMZ1,AuCs73;unsigned char DDAs81, -Q1iXV3,DvwSz1,VPJzO1;unsigned char JhCor3;unsigned long wGgJV2,aW7n84 -;}j0BDS4;typedef struct ZGIPW{unsigned char E7Ual2,W4f921,kgEeY3, -_Oqi51,x2RgK4,PBtXm1,TIQMZ1,AuCs73;unsigned char DDAs81,Q1iXV3,DvwSz1 -,VPJzO1;unsigned char JhCor3;unsigned long wGgJV2,aW7n84;unsigned long -x8DWY2,oWLOw3;unsigned char mHM361[32],FNU7M3[16],jf4g9;}s5rwo1; -typedef struct Ed2jH{unsigned long fVNme,ELKAp3,KQKqV1, *PnawH; -volatile unsigned long GhexM2;unsigned long EbhBp3;MhiF14 IkJYR1; -unsigned char BC6Zd3[256];}iOPn3;__forceinline static unsigned bdVLJ3 -(volatile unsigned long*RdZoN,const unsigned char*mmXTK1,unsigned -NZbNW4);__forceinline static unsigned RtiEy4(volatile unsigned long* -RdZoN,unsigned kKiv65);__forceinline static void AUUSL3(volatile -unsigned long*RdZoN,unsigned kKiv65,unsigned vgKFx2);__forceinline -static void Ae0Cg2(unsigned Uya4h,volatile unsigned long*RdZoN, -unsigned kKiv65,unsigned vgKFx2);__forceinline static unsigned _ozJC4 -(unsigned Uya4h,volatile unsigned long*RdZoN,unsigned kKiv65); -__forceinline static unsigned lmuOy2(unsigned Uya4h,volatile unsigned -long*RdZoN,unsigned kKiv65);__noinline static void __fastcall BucKo( -volatile unsigned long*RdZoN,unsigned kKiv65,unsigned vgKFx2); -__noinline static unsigned __fastcall SlE234(volatile unsigned long* -RdZoN,unsigned kKiv65);__noinline static unsigned __fastcall dMM0e1( -volatile unsigned long*RdZoN,unsigned kKiv65);__noinline static void -__fastcall HcALQ1(volatile unsigned long*RdZoN,unsigned kKiv65, -unsigned long vgKFx2);__noinline static unsigned long __fastcall BLq4p -(volatile unsigned long*RdZoN,unsigned kKiv65);__noinline static void -__fastcall AErNL3(kWMzp1*J7Iki4);__noinline static void __fastcall -s3sCI1(volatile unsigned long*RdZoN,unsigned kKiv65,unsigned vgKFx2); -__noinline static unsigned __fastcall fFvjz3(volatile unsigned long* -RdZoN,unsigned kKiv65);__noinline static unsigned __fastcall NHDsK3( -volatile unsigned long*RdZoN,unsigned kKiv65);__noinline static void -__fastcall Rqv1w3(volatile unsigned long*RdZoN,unsigned kKiv65, -unsigned long vgKFx2);__noinline static unsigned long __fastcall -sl0aO1(volatile unsigned long*RdZoN,unsigned kKiv65);__noinline static -void __fastcall tsz3n4(kWMzp1*J7Iki4);__noinline static void -__fastcall IoSy32(kWMzp1*J7Iki4,unsigned kKiv65,unsigned vgKFx2); -__noinline static void __fastcall B1Wc_1(kWMzp1*kK4Tl);__forceinline -static int Mrgr62(unsigned gMQg82,unsigned long _xQyf,j0BDS4*Z0e1C2); -__forceinline static void UWXL71(kWMzp1*J7Iki4);static int qWaP5( -kWMzp1*J7Iki4);static void w_2xo4(kWMzp1*UXeiG3);__noinline static -void GLE_s4(kWMzp1*kK4Tl,int NNm8q);__forceinline static int Ji6_v2( -unsigned UYtd71,iOPn3*xb5nq1,unsigned char*X3ca,unsigned IOwwG2); -__forceinline static int X9u3r2(unsigned UYtd71,iOPn3*xb5nq1,unsigned -char*X3ca,unsigned IOwwG2);__forceinline static int usMAR(unsigned -UYtd71,iOPn3*xb5nq1,unsigned char*X3ca,unsigned IOwwG2);__forceinline -static void cYVI15(unsigned UYtd71,iOPn3*xb5nq1);__forceinline static -int HAuYS2(unsigned UYtd71,iOPn3*xb5nq1);__forceinline static void -vUYb92(unsigned UYtd71,unsigned vLSs_1,iOPn3*xb5nq1,kWMzp1*UXeiG3,int -b9Zs_);__forceinline static void r_RoY4(unsigned UYtd71,iOPn3*xb5nq1); -__forceinline static void CDXHr1(iOPn3*xb5nq1,unsigned iBs7A2,MhiF14 -IkJYR1);__noinline static void DhumT2(kWMzp1*kK4Tl,volatile unsigned -long*RdZoN,int aKuBh3);__noinline static unsigned long __fastcall -xjK0y2(volatile unsigned long*RdZoN);__noinline static unsigned -__fastcall WqCeB2(kWMzp1*UXeiG3);__forceinline static void h2LrH3( -volatile long*gJqKI){__asm __volatile("lock; decl %0;":"=m"(gJqKI[0]): -"m"(gJqKI[0]));}__forceinline static void wP7Tk3(volatile long*gJqKI){ -__asm __volatile("lock; decl %0;" "je 1f;" "int $3;" "1:":"=m"(gJqKI[ -0]):"m"(gJqKI[0]));}__forceinline static void uYS5N2(volatile long* -gJqKI){__asm __volatile("lock; incl %0":"=m"(gJqKI[0]):"m"(gJqKI[0])); -}__forceinline static void OeCZm2(volatile long*gJqKI){__asm -__volatile("cmpl $1, %0;" "je 1f;" "int $3;" "1:":"=m"(gJqKI[0]):"m"( -gJqKI[0]));}enum Y59T82{KZEMj4=01u<<0,qS5lW1=1u<<0x2,D1OxN4=01u<<04, -CeDcj3=01u<<6,zJyAP1=0x1u<<0x8,vC4oo=1u<<012,KZp71=0x1u<<014,eKIU_4= -0x1u<<016,p9baI3=CeDcj3|zJyAP1|vC4oo};struct SNgFR3;static int WQjAp4 -(kWMzp1*J7Iki4,QDNE6*a02Gz4,struct SNgFR3*esWTk2);static int xnb4g3( -kWMzp1*J7Iki4,QDNE6*a02Gz4,struct SNgFR3*esWTk2);__forceinline static -void fk7g83(kWMzp1*UXeiG3){GLE_s4(UXeiG3,(-01));}__forceinline static -void Vtxp55(kWMzp1*UXeiG3){GLE_s4(UXeiG3,(-1));}__forceinline static -void N5Uxq(kWMzp1*UXeiG3){GLE_s4(UXeiG3,(-1));}typedef struct a3Tyk1{ -void*pBSeu3, *WHQ_F1;}r03RA1; -#pragma pack(4) -enum t7TM23{KahAO3=0,ZbGWr3=0x1,UDBom4=02,ALDl73=3,gFcu54=05,Fv3Q52=6 -};typedef union eBDs3{struct{unsigned:0x2;unsigned tgsPg:1;unsigned -MiEVK2:0x3;unsigned vkd5K4:01;unsigned:01;unsigned k18ZY3:5;unsigned: -1;unsigned a7_mx4:0x1;unsigned in:0x1;}V9ej93;unsigned long dZK6h3;} -fjJFe;enum ooAwi4{wXT2N2=0,A93PI1=4,hQBcc1=05,Eca0e4=06,_ZUUf=0x8, -yfHHm3=011,rKQwU4=012};typedef union XW9Wk2{struct{unsigned oDDgs2: -010;unsigned aUfOe1:5;unsigned KJYtb1:1;unsigned:0x2;unsigned B3FTZ: -0x8;unsigned dQ5DX:5;unsigned iGfEm1:0x1;unsigned:2;}V9ej93;unsigned -long m4orV4;}eU6Lk2;enum c2zve{Keg62=0,_qLu61=01,bWIkq=0x2,erjzp3=3}; -enum ws_Fn2{Jry9D1=0x1,InZ58=2,zYrRf4=4,UsDI23=0x8,oKUjX2=16,tyWsL1= -32,hOtzj=64,vvbK44=128,OuIaM2=0,VHvU93=Jry9D1,g5zpH4=InZ58,RQJum= -InZ58|Jry9D1,Xlqk=hOtzj,aCIS84=hOtzj|Jry9D1,TzyBa1=Jry9D1|hOtzj|InZ58 -,OULAA3=0,T8skA=UsDI23,s9FHT4=oKUjX2,Nt0Ut1=oKUjX2|UsDI23,BhIif3= -tyWsL1,aez0x4=tyWsL1|UsDI23|vvbK44,EIMqn1=zYrRf4,WAyh21=UsDI23|tyWsL1 -|oKUjX2|zYrRf4|vvbK44};enum pSVTD{cv_9R4=128,TZPQi3=64,QnuE7=32, -DlZKQ4=16,iypdS2=0x8,psOxv1=04,WDh6T=0x2,DokQ43=1};typedef union -NClkL3{struct{unsigned rwHIy4:0x1;unsigned L221t4:0x2;unsigned t0Vn23 -:0x1;unsigned ltzXg3:02;unsigned L8vCo2:01;unsigned knaph4:01; -unsigned xk8cK4:010;unsigned D1JXh:010;unsigned LoGHc4:010;}V9ej93; -unsigned long dZK6h3;}gXydj1;typedef union gbrGo{struct{unsigned aF6cv -:6;unsigned:26;}V9ej93;unsigned long dZK6h3;}uEltX4;typedef struct -cRMcR4{gXydj1 xFtBP;unsigned long xzeKf3;unsigned long FdyFT1;uEltX4 -ZevQC2;}inWLN1;typedef struct enZxZ3{fjJFe ees1n1;unsigned long BPohy2 -;unsigned long sKHDc3;eU6Lk2 ZKJvS1[32];inWLN1 rGUtq3[32];volatile -unsigned long AC5eU1[32];volatile unsigned long ZuiJe3[32];}YHU1I; -typedef struct lgZa84{fjJFe ees1n1;inWLN1 j8_u62,DNNWJ3;volatile -unsigned long Kilil2,Z35Ro4;volatile unsigned long g2ZUd3,APQ145;} -gLUQo;typedef union famf93{struct{unsigned flmi45:0x1;unsigned Se_Ax2 -:01;unsigned:2;unsigned hnDyd2:1;unsigned:013;unsigned DIsNz1:16;} -V9ej93;unsigned long dZK6h3;}fo2Uz3;typedef struct zV8VZ1{union{ -unsigned long dZK6h3;struct{unsigned xM_3h3:1;unsigned oBxYC2:01; -unsigned aEuur1:02;unsigned P0HsD2:1;unsigned VUMo65:1;unsigned DpFo_ -:1;unsigned uOtgs4:01;unsigned cWwbw:1;unsigned:027;}V9ej93;}e6VgP3; -unsigned long y8QlL;unsigned long Be1a54;unsigned long P3rGX3; -unsigned long W1Jla4;unsigned long USKhR2;unsigned long r_aQn; -unsigned long HEFHK;union{unsigned long dZK6h3;struct{unsigned ohoqe3 -:13;unsigned buTDY1:1;unsigned KfMd1:1;unsigned I9g9T1:0x1;unsigned -yA8D32:3;unsigned YcoYR3:3;unsigned kz_Xg4:0x3;unsigned a17ei2:0x3; -unsigned vkvip:0x4;}V9ej93;}x2akp;union{unsigned long dZK6h3;struct{ -unsigned PmhvS2:1;unsigned bwTTK3:0x1;unsigned jh_B04:1;unsigned -Aj3Sz3:0x1;unsigned n_hAy:1;unsigned npczE3:01;unsigned Vu5Pf4:0x1; -unsigned QNnjG2:01;unsigned H7MIV3:0x1;unsigned:07;unsigned:16;} -V9ej93;}IBcfz;unsigned long uWETN2;unsigned long BEfdP;unsigned long -JVax01;unsigned long o6C8s2;unsigned long _BCMS3;unsigned long ErtY2; -unsigned long PGh3e4;unsigned long q6r1b3;unsigned long SudMT3; -unsigned long Bpn7w1;unsigned long YosKg1;unsigned long eg17p3; -unsigned long XPQnv1;unsigned long GiK3J1;unsigned long lHsjw1; -unsigned long oU5TM;unsigned long smnR45;unsigned long pPgqe2; -unsigned long ZCWMs2;unsigned long ouy3Q;unsigned long YOy672; -unsigned long euuEB1;unsigned long Sqi0T3;unsigned long UyRVB4; -unsigned long JRLuV2;unsigned long ekrSG;unsigned long vEeS92; -unsigned long nhy0Y;unsigned long MVwig1;unsigned long Jd3Ub2; -unsigned long evktq4;unsigned long dyDHu2;unsigned long LZLYn; -unsigned long t2pBR2;unsigned long A1jmR4;unsigned long CvU4o2; -unsigned long MNIUU;unsigned long vTOaq1;unsigned long ZDwa01; -unsigned long St8W34;unsigned long HLZik4;unsigned long ujVVT; -unsigned long VUIQl;unsigned long qo8eL;unsigned long MmVgu;unsigned -long p0yVj4;unsigned long RJVHy4;unsigned long UgbwG3;unsigned long -plScs1;unsigned long tSIGF3;unsigned long y3yr7;unsigned long HJfJJ; -unsigned long R52Qw3;unsigned long QiJJ6;}LbJOV;enum s6cvt3{C10QV= -32768ul,j0Yx9=16384ul,rW82M=8192ul,IX4CM3=4096ul,E4BIm1=2048ul,R7mNX2 -=1024ul,lPIbL4=512ul,u8Ob41=256ul,nPH824=128ul,gQf6j1=64ul,w9B8P4= -32ul,kCJ6a1=16ul,zbora1=0x8ul,dVahx4=04ul,Sptqu=02ul,r3CcP2=01ul}; -typedef union y5A4M3{struct{unsigned:16;unsigned Hqc15:015;unsigned -WtICk3:0x1;unsigned DEVTm4:0x1;unsigned:1;}V9ej93;unsigned long T21Gw2 -;}QxFc22;typedef union _frtg{struct{unsigned:8;unsigned z1nNq2:1; -unsigned hAxq53:01;unsigned Gp2G51:0x1;unsigned ETBla3:01;unsigned -pJ7gv1:1;unsigned Hw1x02:1;unsigned TbIRU3:0x1;unsigned:01;unsigned -ssopP1:015;unsigned:0x1;unsigned Vmiuc3:01;unsigned oeReu4:01;}V9ej93 -;unsigned long h80jx1;}QiOkk4;typedef struct Cxl7q3{QxFc22 ixItX3; -unsigned long eSf3B1;unsigned long agWoi2;QiOkk4 Yj6gL2;}lYL9e1; -typedef union dr2NC{struct{unsigned C9HLP2:013;unsigned TtJ5j4:01; -unsigned Ww9nZ4:1;unsigned:2;unsigned Oo9ZQ2:01;unsigned Hqc15:015; -unsigned WtICk3:01;unsigned DEVTm4:0x1;unsigned oeReu4:01;}V9ej93; -unsigned long dZK6h3;}BknPf3;typedef struct FD8Md1{BknPf3 _8WVQ2; -unsigned long eSf3B1;unsigned long agWoi2;unsigned long l6FLs;}TchrS; -typedef union Yfo3j1{struct{unsigned hj5891:05;unsigned okHyr3:1; -unsigned LaMny4:1;unsigned nDLY04:01;unsigned GrYG41:0x1;unsigned:0x2 -;unsigned KYiBO3:0x1;unsigned WtICk3:0x1;unsigned:0x3;unsigned:010; -unsigned ADaUw:010;}V9ej93;unsigned long dZK6h3;}cbk1I1;typedef union -U8qqH3{struct{unsigned hj5891:5;unsigned:0x2;unsigned nDLY04:0x1; -unsigned GrYG41:01;unsigned TbIRU3:0x1;unsigned eBc9w4:01;unsigned -KYiBO3:1;unsigned WtICk3:0x1;unsigned _yZbF3:0x1;unsigned k3d_u3:1; -unsigned LZZGY4:1;unsigned Jc8gF1:01;unsigned PSlSv3:0x1;unsigned -uj5UX4:1;unsigned qO2CE1:1;unsigned GH_613:01;unsigned IwMsS4:0x1; -unsigned mCVW71:1;unsigned Ttri:0x1;unsigned ADaUw:0x8;}V9ej93; -unsigned long dZK6h3;}IxW_32;typedef union kT_9e2{struct{unsigned -NvHo73:24;unsigned ADaUw:8;}V9ej93;unsigned long dZK6h3;}fTG_T4;enum -TqcJI3{eORWN1=32,SaEs82=48,KI_rp3=0140,X6nSb1=112,Jto621=0xb0,A_8_i1= -0xa0,Znzp11=0xa1,RhTls2=144,tRnkz1=145,anpXO2=133};enum bmwN91{tXFTB4 -,wTSMD1,Wa6IF1,cy2jE4};enum qr8nF2{blWHd2,csvRg2,auwjC,XlFgj4,JFrCi4, -PpoEe4};struct FtjYA4;struct SNgFR3;struct _YcFb4;struct K0Kz1; -typedef struct K0Kz1{struct SNgFR3*pBSeu3, *WHQ_F1;}OWsiH1;typedef -struct FtjYA4{union{TchrS fbiOR4;lYL9e1 SpbRG4;unsigned long m4orV4[ -04];struct{union{struct{unsigned:16;unsigned Hqc15:13;unsigned WtICk3 -:0x1;unsigned DEVTm4:01;unsigned:1;}V9ej93;unsigned long T21Gw2;} -_8WVQ2;unsigned long eSf3B1;unsigned long agWoi2;unsigned long h80jx1 -;}zACHc3;}_8WVQ2;unsigned long MDSlK2;struct FtjYA4*Lrwko2;struct -FtjYA4*OXCDa4;struct SNgFR3*wkiYO4;}tJ1Kb4;typedef union diBnr1{ -struct{unsigned Y81UE3:010;unsigned fbiOR4:01;unsigned SpbRG4:01; -unsigned O6kQX4:0x1;unsigned XpfBS:0x1;unsigned cw78L3:0x4;}V9ej93; -unsigned short dZK6h3;}ErbGq4;enum dUSVs{LqFyN,PxKBA2,ll1kg3,d5Rc74, -LR7D_3,In2Nl4,w3eQb2,FqrfM3,HMsf02,p_EZu3,b4O7W4,cXuz63,OKQI31}; -typedef struct SNgFR3{int Xx6Ti3;QDNE6*a02Gz4;struct{struct SNgFR3* -OXCDa4, *neQ2f1;struct FtjYA4*GEbPX4, *qXXnD2;unsigned yjr7l4;}NpyOc1 -;struct{struct SNgFR3*OXCDa4, *neQ2f1;unsigned pT8M75,gfIP34,LigBO2; -ErbGq4 daUKU2[014];}woMv11;struct{j0BDS4 C6yEr1;unsigned G15W41;} -tQcig;}DCf0T2;struct hmPCQ4{unsigned long Sc2KG4;YHU1I Rc7LY4; -unsigned long HQW5W1;gLUQo gCRyd3;volatile LbJOV*fV7o35;unsigned long -Cga1V;tJ1Kb4*vCi6J4;tJ1Kb4*ykU1G2;DCf0T2*QLWyF2;unsigned MLZ_Y,yODLB3 -,OkoqJ1;volatile unsigned long KMSZr2[(256*2)];volatile unsigned long -Ragva2[(256*02)];volatile fTG_T4 n76Wf1[(256*2)];OWsiH1 CUhqx4;OWsiH1 -Nlajt1;eU6Lk2 ScZIu[32];struct{unsigned long v9yTK4;unsigned long -twfX61;unsigned long s_Lmx3;unsigned long X_sGC1,dJbtz4;}ZWSDs2; -tJ1Kb4*RZWDZ2[32];tJ1Kb4*PGmy4[32];DCf0T2*eWAnF[32];int nCdFc[32];int -mNYxW2[32];int nvFyD4[32];int l_AcZ[32];unsigned LFVWc4[32];unsigned -zM0Qt3[32];OWsiH1 pnKue2[32];OWsiH1 _jfrJ1[32];unsigned v1h0c2[32]; -Rf7MZ2 FmCLm3[32];oSdJm*YRHFy;unsigned char MIvbE3,qWRLr4;unsigned -char DL14H3;unsigned char iTAD3;unsigned char QIA5L;unsigned char -vDEWd3;unsigned char jXwP42;unsigned char TrqaA;unsigned long F46242; -unsigned long a6vkI2;enum qr8nF2 uyKJn2;int SP4ZU;unsigned GEt0d; -unsigned iO1iw4[02];s5rwo1 v6D2d3[2];ZvgAS1 P9UkM1[2];unsigned char* -veMrO;unsigned char*bNfmc1;ZvgAS1 xOYSq1;unsigned char jyElQ3[2][32]; -unsigned HtJEJ;volatile long h2LrH3;unsigned jfimS4;unsigned long -hBew43;iOPn3*hRUi43[2][0x4];struct{iOPn3 KqthD[04];unsigned H4ghS2;} -oXafA1[2];DCf0T2 ikuha3[512];tJ1Kb4 MEYPf1[(8+0x1) *32*2+32*2+32]; -unsigned char qs0N02[512];};static void E2DoN1(kWMzp1*J7Iki4,void* -dYe4I2,void*r49eY4,unsigned long Cga1V,oSdJm*YRHFy,nEC5K2 Gb8Is4); -static void c0gFy1(kWMzp1*J7Iki4,int mdbib4);static void CLbj94( -kWMzp1*J7Iki4){J7Iki4->fV7o35->P3rGX3=~0ul;}static int i_1fA2(kWMzp1* -J7Iki4,QDNE6*wkiYO4);static int QrVoB3(kWMzp1*J7Iki4,QDNE6*wkiYO4,int -pTM6S);static int yoLEn3(kWMzp1*J7Iki4);static enum bmwN91 cWGy25( -kWMzp1*J7Iki4);static enum bmwN91 Plb1C3(kWMzp1*J7Iki4);static int -nIaSt(kWMzp1*J7Iki4);__forceinline static void mqe7E2(LbJOV*FaLJH2); -__noinline static unsigned char TFC2u3(kWMzp1*J7Iki4);__noinline -static void __fastcall mthh13(kWMzp1*J7Iki4,unsigned long p3Xgs1, -unsigned LigBO2);__forceinline static void lN6oU2(inWLN1*e0wGb1); -__forceinline static void gw6c82(kWMzp1*J7Iki4,unsigned M1Kp62); -__noinline static void __fastcall WdqxE(kWMzp1*J7Iki4,unsigned M1Kp62 -);__noinline static void __fastcall YBrPF4(kWMzp1*J7Iki4);__noinline -static void __fastcall SdYiI(kWMzp1*J7Iki4,DCf0T2*esWTk2);__noinline -static void gYC_T3(kWMzp1*J7Iki4,int LigBO2);__forceinline static int -Nq5gq(kWMzp1*J7Iki4,unsigned LigBO2);__noinline static tJ1Kb4*i3w1H( -kWMzp1*J7Iki4,unsigned LigBO2);__noinline static void q0ypK(kWMzp1* -J7Iki4,int LigBO2);__forceinline static int Kf8n_4(kWMzp1*J7Iki4, -unsigned LigBO2);__noinline static tJ1Kb4*O6fhT(kWMzp1*J7Iki4, -unsigned LigBO2);__noinline static void __fastcall z5sap1(kWMzp1* -J7Iki4,DCf0T2*esWTk2);__forceinline static void jsS_d1(kWMzp1*J7Iki4); -__forceinline static void fjOw35(kWMzp1*J7Iki4,unsigned LigBO2); -__forceinline static void u0bxl3(kWMzp1*J7Iki4,unsigned LigBO2); -__noinline static void __fastcall TR6nX1(kWMzp1*J7Iki4,unsigned LigBO2 -);__noinline static void __fastcall yn0bR1(kWMzp1*J7Iki4);static void -zfjz55(kWMzp1*J7Iki4,DCf0T2*esWTk2);__noinline static void UK8sN4( -kWMzp1*J7Iki4);__noinline static void jK7VQ3(kWMzp1*J7Iki4); -__noinline static void GV2iC4(kWMzp1*J7Iki4,unsigned LigBO2,unsigned -QvZLK);__noinline static void B7zr54(kWMzp1*J7Iki4,unsigned LigBO2, -unsigned QvZLK);__forceinline static void pxiAh4(kWMzp1*J7Iki4,DCf0T2 - *esWTk2,unsigned M1Kp62);__forceinline static void dfhdh3(kWMzp1* -J7Iki4,unsigned LigBO2,unsigned long*spClj2,unsigned long*xoXsZ); -__noinline static void og0xA1(kWMzp1*J7Iki4);static void __attribute__ -((const))nvqbt(void){__asm __volatile("repe; nop; repe; nop;" -"pushl %%ebx; repe; nop; repe; nop;" -"pushl %%ecx; repe; nop; repe; nop;" -"xorl %%eax, %%eax; repe; nop; repe; nop;" -"cpuid; repe; nop; repe; nop;" -"nop; repe; nop; repe; nop;" -"xorl %%eax, %%eax; repe; nop; repe; nop;" -"cpuid; repe; nop; repe; nop;" -"popl %%ecx; repe; nop; repe; nop;" -"popl %%ebx; repe; nop; repe; nop;": : :"%eax","%edx","cc");} -static const unsigned long sTQei1[32]={1ul<<0,0x1ul<<01,0x1ul<<02, -0x1ul<<3,01ul<<4,01ul<<5,01ul<<6,01ul<<7,01ul<<010,1ul<<011,0x1ul<< -012,01ul<<013,1ul<<014,01ul<<13,1ul<<14,01ul<<017,0x1ul<<16,1ul<<021, -01ul<<0x12,1ul<<19,01ul<<0x14,01ul<<21,1ul<<026,1ul<<027,1ul<<24,01ul -<<031,1ul<<0x1a,0x1ul<<0x1b,1ul<<034,1ul<<0x1d,0x1ul<<0x1e,0x1ul<<31} -;static const unsigned long OgFMa4[32]={~(0x1ul<<0),~(01ul<<01),~(1ul -<<2),~(0x1ul<<0x3),~(01ul<<04),~(1ul<<5),~(01ul<<06),~(1ul<<7),~( -0x1ul<<0x8),~(0x1ul<<011),~(0x1ul<<012),~(01ul<<013),~(0x1ul<<014),~( -01ul<<015),~(0x1ul<<14),~(1ul<<017),~(0x1ul<<16),~(1ul<<021),~(0x1ul -<<0x12),~(1ul<<023),~(1ul<<0x14),~(0x1ul<<0x15),~(0x1ul<<026),~(0x1ul -<<027),~(01ul<<0x18),~(01ul<<25),~(1ul<<26),~(1ul<<27),~(1ul<<0x1c),~ -(0x1ul<<0x1d),~(1ul<<036),~(1ul<<0x1f)};__forceinline static long -KAeao3(long volatile*aRTVj3,long f2E883){__asm __volatile( -"lock; xchgl %0,%1":"=r"(f2E883):"m"(aRTVj3[0]),"0"(f2E883));return -f2E883;}__forceinline static void RQO4U4(kWMzp1*J7Iki4){int X3V8j4; -J7Iki4->ZWSDs2.s_Lmx3=0;X3V8j4=32-0x1;{v2ePo:{J7Iki4->Rc7LY4.ZKJvS1[ -X3V8j4]=J7Iki4->ScZIu[X3V8j4];}if(--X3V8j4>=0)goto v2ePo;};} -__forceinline static int BTL3a(void*nIR_D4,void*fdzEO1,void*sWA1f4){ -return((unsigned char* )nIR_D4)>=((unsigned char* )fdzEO1)&&(( -unsigned char* )nIR_D4)<((unsigned char* )sWA1f4);}static int -__fastcall cFFDu1(OWsiH1*XNL6O3,DCf0T2*esWTk2){DCf0T2*wnE5k3;{wnE5k3= -XNL6O3->pBSeu3;zeNT65:if(!(wnE5k3!=0))goto MogYy;goto sMbS93;j12w52: -wnE5k3=wnE5k3->woMv11.OXCDa4;goto zeNT65;sMbS93:{if(!(wnE5k3==esWTk2))goto -ZVkKi4;return 01;ZVkKi4:;}goto j12w52;MogYy:;}return 0;}static int -__fastcall ppetC1(OWsiH1*XNL6O3,DCf0T2*esWTk2){DCf0T2*wnE5k3;{wnE5k3= -XNL6O3->pBSeu3;myHoB4:if(!(wnE5k3!=0))goto rAK0m;goto HWkUv3;eiT8Z3: -wnE5k3=wnE5k3->NpyOc1.OXCDa4;goto myHoB4;HWkUv3:{if(!(wnE5k3==esWTk2))goto -_djv13;return 01;_djv13:;}goto eiT8Z3;rAK0m:;}return 0;}__forceinline -static tJ1Kb4*osQ5M(kWMzp1*J7Iki4,unsigned long QB6LL){tJ1Kb4*Q7gY12; -;Q7gY12=(tJ1Kb4* )(((unsigned char* )J7Iki4)+QB6LL-J7Iki4->Cga1V); -return Q7gY12;}static void mqe7E2(LbJOV*FaLJH2){int X3V8j4;X3V8j4= -256/sizeof(unsigned)-0x1;{Nwbig2:{((unsigned* )FaLJH2)[X3V8j4]=0;}if( ---X3V8j4>=0)goto Nwbig2;};}__forceinline static void YqR582(LbJOV* -QD7sk4,volatile LbJOV*fV7o35){fV7o35->e6VgP3.dZK6h3=QD7sk4->e6VgP3. -dZK6h3;fV7o35->P3rGX3=QD7sk4->P3rGX3;fV7o35->USKhR2=QD7sk4->USKhR2; -;fV7o35->r_aQn=QD7sk4->r_aQn;fV7o35->x2akp.dZK6h3=QD7sk4->x2akp. -dZK6h3;fV7o35->IBcfz.dZK6h3=QD7sk4->IBcfz.dZK6h3;fV7o35->uWETN2= -QD7sk4->uWETN2;fV7o35->BEfdP=QD7sk4->BEfdP;fV7o35->JVax01=QD7sk4-> -JVax01;fV7o35->o6C8s2=QD7sk4->o6C8s2;fV7o35->_BCMS3=QD7sk4->_BCMS3; -;fV7o35->ErtY2=QD7sk4->ErtY2;fV7o35->PGh3e4=QD7sk4->PGh3e4;fV7o35-> -q6r1b3=QD7sk4->q6r1b3;fV7o35->YosKg1=QD7sk4->YosKg1;fV7o35->eg17p3= -QD7sk4->eg17p3;fV7o35->XPQnv1=QD7sk4->XPQnv1;fV7o35->GiK3J1=QD7sk4 -->GiK3J1;fV7o35->lHsjw1=QD7sk4->lHsjw1;fV7o35->oU5TM=QD7sk4->oU5TM; -;fV7o35->smnR45=QD7sk4->smnR45;fV7o35->pPgqe2=QD7sk4->pPgqe2;fV7o35 -->ZCWMs2=QD7sk4->ZCWMs2;fV7o35->ouy3Q=QD7sk4->ouy3Q;fV7o35->YOy672= -QD7sk4->YOy672;fV7o35->Sqi0T3=QD7sk4->Sqi0T3;fV7o35->UyRVB4=QD7sk4 -->UyRVB4;fV7o35->JRLuV2=QD7sk4->JRLuV2;fV7o35->vEeS92=QD7sk4-> -vEeS92;fV7o35->nhy0Y=QD7sk4->nhy0Y;fV7o35->MVwig1=QD7sk4->MVwig1; -fV7o35->evktq4=QD7sk4->evktq4;fV7o35->dyDHu2=QD7sk4->dyDHu2;fV7o35 -->A1jmR4=QD7sk4->A1jmR4;fV7o35->CvU4o2=QD7sk4->CvU4o2;fV7o35-> -ZDwa01=QD7sk4->ZDwa01;fV7o35->St8W34=QD7sk4->St8W34;fV7o35->RJVHy4= -QD7sk4->RJVHy4;fV7o35->UgbwG3=QD7sk4->UgbwG3;fV7o35->plScs1=QD7sk4 -->plScs1;fV7o35->tSIGF3=QD7sk4->tSIGF3;fV7o35->y3yr7=QD7sk4->y3yr7; -;fV7o35->HJfJJ=QD7sk4->HJfJJ;fV7o35->R52Qw3=QD7sk4->R52Qw3;fV7o35-> -QiJJ6=QD7sk4->QiJJ6;}__noinline static void __fastcall mthh13(kWMzp1 - *J7Iki4,unsigned long p3Xgs1,unsigned LigBO2){int X3V8j4=32-01;{ -vRxE54:{{if(!(p3Xgs1&sTQei1[X3V8j4]))goto RK1kA1;{J7Iki4->FmCLm3[ -X3V8j4].lPHda=(unsigned char)LigBO2;J7Iki4->FmCLm3[X3V8j4].g5AWi=( -unsigned char)LigBO2;J7Iki4->FmCLm3[X3V8j4].IG7lN3=(unsigned char)0xFFu -;J7Iki4->FmCLm3[X3V8j4].GISTQ2=(unsigned char)0xFFu;}goto OIUj41; -RK1kA1:;{{if(!(J7Iki4->FmCLm3[X3V8j4].lPHda==(unsigned char)LigBO2))goto -MkGn24;J7Iki4->FmCLm3[X3V8j4].lPHda=(unsigned char)0xFFu;MkGn24:;}{if -(!(J7Iki4->FmCLm3[X3V8j4].g5AWi==(unsigned char)LigBO2))goto XALmV1; -J7Iki4->FmCLm3[X3V8j4].g5AWi=(unsigned char)0xFFu;XALmV1:;}}OIUj41:;} -}if(--X3V8j4>=0)goto vRxE54;};}__noinline static unsigned char TFC2u3 -(kWMzp1*J7Iki4){unsigned char qwUGv3=0;int X3V8j4;J7Iki4->ZWSDs2. -s_Lmx3=0;X3V8j4=32-0x1;{Pq8Ms3:{register eU6Lk2 hzXIT2;hzXIT2.m4orV4= -0;{if(!(J7Iki4->FmCLm3[X3V8j4].g5AWi<32&&J7Iki4->FmCLm3[X3V8j4]. -GISTQ2!=0))goto rZeKl1;{hzXIT2.V9ej93.aUfOe1|=J7Iki4->FmCLm3[X3V8j4]. -g5AWi;hzXIT2.V9ej93.oDDgs2|=J7Iki4->FmCLm3[X3V8j4].GISTQ2;}goto S0xvx2 -;rZeKl1:;{hzXIT2.V9ej93.KJYtb1|=1;hzXIT2.V9ej93.aUfOe1|=32-0x1;} -S0xvx2:;}{if(!(J7Iki4->FmCLm3[X3V8j4].lPHda<32&&J7Iki4->FmCLm3[X3V8j4 -].IG7lN3!=0))goto CF8g_3;{hzXIT2.V9ej93.dQ5DX|=J7Iki4->FmCLm3[X3V8j4] -.lPHda;hzXIT2.V9ej93.B3FTZ|=J7Iki4->FmCLm3[X3V8j4].IG7lN3;}goto QOIUF2 -;CF8g_3:;{hzXIT2.V9ej93.iGfEm1|=01;hzXIT2.V9ej93.dQ5DX|=32-0x1;} -QOIUF2:;}J7Iki4->ScZIu[X3V8j4].m4orV4=hzXIT2.m4orV4;{if(!(hzXIT2. -m4orV4!=J7Iki4->Rc7LY4.ZKJvS1[X3V8j4].m4orV4))goto A2riI1;{J7Iki4-> -ZWSDs2.s_Lmx3|=0|sTQei1[hzXIT2.V9ej93.dQ5DX]|sTQei1[hzXIT2.V9ej93. -aUfOe1]|sTQei1[J7Iki4->Rc7LY4.ZKJvS1[X3V8j4].V9ej93.dQ5DX]|sTQei1[ -J7Iki4->Rc7LY4.ZKJvS1[X3V8j4].V9ej93.aUfOe1];qwUGv3=0x1;}A2riI1:;}}if -(--X3V8j4>=0)goto Pq8Ms3;};return qwUGv3;}__forceinline static void -lN6oU2(inWLN1*e0wGb1){register gXydj1 P_XoQ1;P_XoQ1.dZK6h3=0;P_XoQ1. -V9ej93.D1JXh|=g5zpH4|s9FHT4|EIMqn1;e0wGb1->xFtBP.dZK6h3=P_XoQ1.dZK6h3 -;e0wGb1->ZevQC2.dZK6h3=0;}__forceinline static void VcwKo1(kWMzp1* -J7Iki4,unsigned LigBO2){lN6oU2(&J7Iki4->Rc7LY4.rGUtq3[LigBO2]);} -__forceinline static void gw6c82(kWMzp1*J7Iki4,unsigned M1Kp62){ -unsigned vuXVj1;register fo2Uz3 cfJmy1;{_Hn1b4:{__asm __volatile("" -::);__asm __volatile("lock; addl $0,(%%esp)": : :"cc");__asm -__volatile(""::);}if(0)goto _Hn1b4;};J7Iki4->fV7o35->Be1a54=gQf6j1| -Sptqu|r3CcP2;vuXVj1=((M1Kp62<<3)+M1Kp62)<<011;{if(!(vuXVj1>0xFFFFul))goto -bAkfW4;vuXVj1=0xFFFFul;bAkfW4:;}cfJmy1.dZK6h3=0;cfJmy1.V9ej93.DIsNz1 -|=vuXVj1;cfJmy1.V9ej93.hnDyd2|=0x1;J7Iki4->uyKJn2=auwjC;J7Iki4-> -fV7o35->y8QlL=cfJmy1.dZK6h3;}__noinline static void __fastcall WdqxE( -kWMzp1*J7Iki4,unsigned M1Kp62){unsigned jSJ9c=02342*M1Kp62*02;gw6c82( -J7Iki4,M1Kp62);{wmgB11:{{if(!(--jSJ9c==0))goto ba_Y05;goto BbTsK4; -ba_Y05:;}nvqbt();__asm __volatile(""::);}if((J7Iki4->fV7o35->Be1a54& -gQf6j1)==0&&J7Iki4->uyKJn2==auwjC)goto wmgB11;BbTsK4:;};J7Iki4-> -fV7o35->y8QlL=0;J7Iki4->fV7o35->Be1a54=gQf6j1|Sptqu|r3CcP2;J7Iki4-> -uyKJn2=blWHd2;}__forceinline static void Zg2fI4(kWMzp1*J7Iki4, -unsigned long RcNOn){unsigned vuXVj1;register fo2Uz3 cfJmy1;{y_DM22: -{__asm __volatile(""::);__asm __volatile("lock; addl $0,(%%esp)": : : -"cc");__asm __volatile(""::);}if(0)goto y_DM22;};J7Iki4->fV7o35-> -Be1a54=Sptqu|r3CcP2|gQf6j1;J7Iki4->Rc7LY4.ees1n1.dZK6h3=RcNOn;cfJmy1. -dZK6h3=0;cfJmy1.V9ej93.flmi45|=1;vuXVj1=(unsigned)((32*8/2048000.0) * -16/(1.0/33000000.0)+1.5);{if(!(vuXVj1>0xFFFFul))goto TkL0e2;vuXVj1= -0xFFFFul;TkL0e2:;}cfJmy1.V9ej93.DIsNz1|=vuXVj1;cfJmy1.V9ej93.hnDyd2|= -1;J7Iki4->uyKJn2=csvRg2;J7Iki4->fV7o35->y8QlL=cfJmy1.dZK6h3;} -__noinline static int __fastcall TifAa1(kWMzp1*J7Iki4,unsigned long -RcNOn){unsigned Os1bA3;__asm __volatile(""::);J7Iki4->fV7o35->Be1a54= -~0u;Zg2fI4(J7Iki4,RcNOn);{qCMu6:if(!(1))goto JO5LW;{nvqbt();__asm -__volatile(""::);Os1bA3=J7Iki4->fV7o35->Be1a54;{if(!(Os1bA3&(Sptqu| -r3CcP2|gQf6j1)))goto XtTcj4;{J7Iki4->uyKJn2=blWHd2;J7Iki4->fV7o35-> -y8QlL=0;__asm __volatile(""::);J7Iki4->fV7o35->Be1a54=gQf6j1|Sptqu| -r3CcP2;__asm __volatile(""::);{if(!(Os1bA3&r3CcP2))goto t6up71;{ -return 1;}t6up71:;}{if(!(Os1bA3&Sptqu))goto Y96HU;{return 0;}Y96HU:; -}{if(!(Os1bA3&gQf6j1))goto vI2454;{return 0;}vI2454:;}}XtTcj4:;}} -goto qCMu6;JO5LW:;}}__forceinline static unsigned long WdFDP4(int -ui2QH1,int UF27x1,int Zo_mV2,unsigned hj5891,int b6tLK3,unsigned -i9Vca3){register fjJFe RcNOn;RcNOn.dZK6h3=0;{if(!(ui2QH1))goto x3hmy2 -;RcNOn.V9ej93.vkd5K4|=1;goto dsXls;x3hmy2:;{if(!(UF27x1))goto QzkCk4; -{RcNOn.V9ej93.in|=1;RcNOn.V9ej93.k18ZY3|=hj5891;}goto JOoAO4;QzkCk4:; -{if(!(Zo_mV2))goto y9rQG2;{RcNOn.V9ej93.a7_mx4|=01;RcNOn.V9ej93. -k18ZY3|=hj5891;}y9rQG2:;}JOoAO4:;}dsXls:;}{if(!(b6tLK3))goto FQ0Sx; -RcNOn.V9ej93.tgsPg|=1;FQ0Sx:;}{if(!(i9Vca3))goto UuhYR2;RcNOn.V9ej93. -MiEVK2|=i9Vca3;UuhYR2:;}return RcNOn.dZK6h3;}static tJ1Kb4*__fastcall -D77H33(kWMzp1*J7Iki4,DCf0T2*wkiYO4){{if(!(J7Iki4->vCi6J4!=J7Iki4-> -ykU1G2))goto SQx3H4;{tJ1Kb4*nusR52=J7Iki4->vCi6J4;J7Iki4->vCi6J4= -J7Iki4->vCi6J4->OXCDa4;{if(!(nusR52->_8WVQ2.zACHc3.eSf3B1))goto sdrb93 -;{tJ1Kb4*tfu023=osQ5M(J7Iki4,nusR52->_8WVQ2.zACHc3.eSf3B1);tfu023-> -Lrwko2=0;nusR52->_8WVQ2.zACHc3.eSf3B1=0;}sdrb93:;}nusR52->wkiYO4= -wkiYO4;nusR52->OXCDa4=0;nusR52->Lrwko2=0;nusR52->_8WVQ2.zACHc3.h80jx1 -=0;return nusR52;}SQx3H4:;}return 0;}__forceinline static void K5XcD( -kWMzp1*J7Iki4,tJ1Kb4*nusR52){nusR52->wkiYO4=0;nusR52->_8WVQ2.fbiOR4. -_8WVQ2.dZK6h3=1073741824ul|2147483648ul;nusR52->Lrwko2=0;nusR52-> -_8WVQ2.zACHc3.eSf3B1=0;nusR52->OXCDa4=0;nusR52->_8WVQ2.fbiOR4.agWoi2= -((unsigned long)&(((kWMzp1* )J7Iki4->Cga1V)->qs0N02));}__forceinline -static void GjSDd(kWMzp1*J7Iki4,tJ1Kb4*nusR52){nusR52->wkiYO4=0; -nusR52->_8WVQ2.SpbRG4.ixItX3.T21Gw2=536870912ul|((512-4)<<16u);nusR52 -->_8WVQ2.SpbRG4.Yj6gL2.h80jx1=0;nusR52->Lrwko2=0;nusR52->_8WVQ2. -zACHc3.eSf3B1=nusR52->MDSlK2;nusR52->OXCDa4=0;nusR52->_8WVQ2.fbiOR4. -agWoi2=((unsigned long)&(((kWMzp1* )J7Iki4->Cga1V)->qs0N02));} -__forceinline static void JbQTW(kWMzp1*J7Iki4,tJ1Kb4*nusR52){J7Iki4 -->ykU1G2->OXCDa4=nusR52;J7Iki4->ykU1G2=nusR52;nusR52->OXCDa4=0;} -static void cDkxL3(kWMzp1*J7Iki4,tJ1Kb4*nusR52,unsigned LigBO2){{if(! -(nusR52!=J7Iki4->RZWDZ2[LigBO2]))goto zS0kp1;JbQTW(J7Iki4,nusR52); -goto rHX2N;zS0kp1:;K5XcD(J7Iki4,nusR52);rHX2N:;}}static void -__fastcall uKg3m2(kWMzp1*J7Iki4,DCf0T2*esWTk2){{KwEok2:if(!(esWTk2-> -NpyOc1.GEbPX4))goto EzYjG;{tJ1Kb4*nusR52=esWTk2->NpyOc1.GEbPX4; -esWTk2->NpyOc1.GEbPX4=nusR52->OXCDa4;JbQTW(J7Iki4,nusR52);}goto -KwEok2;EzYjG:;}esWTk2->NpyOc1.qXXnD2=0;}static void LjWek1(kWMzp1* -J7Iki4,DCf0T2*esWTk2,unsigned LigBO2){{sqUio1:if(!(esWTk2->NpyOc1. -GEbPX4))goto NAhp63;{tJ1Kb4*nusR52=esWTk2->NpyOc1.GEbPX4;esWTk2-> -NpyOc1.GEbPX4=nusR52->OXCDa4;cDkxL3(J7Iki4,nusR52,LigBO2);}goto -sqUio1;NAhp63:;}esWTk2->NpyOc1.qXXnD2=0;}static void __fastcall fOVyT4 -(kWMzp1*J7Iki4,unsigned LigBO2,tJ1Kb4*nusR52){tJ1Kb4*WHQ_F1=J7Iki4-> -RZWDZ2[LigBO2];{IPAT8:if(!(!nusR52->_8WVQ2.fbiOR4._8WVQ2.V9ej93. -DEVTm4))goto hT3NM4;{nusR52=osQ5M(J7Iki4,nusR52->_8WVQ2.zACHc3. -eSf3B1);}goto IPAT8;hT3NM4:;}{if(!(nusR52==WHQ_F1))goto UvKJh;{ -return;}UvKJh:;}{TOrKU3:{__asm __volatile(""::);__asm __volatile( -"lock; addl $0,(%%esp)": : :"cc");__asm __volatile(""::);}if(0)goto -TOrKU3;};WHQ_F1->_8WVQ2.zACHc3.eSf3B1=nusR52->MDSlK2;__asm __volatile -("lock; btrl %1,%0":"=m"(WHQ_F1->_8WVQ2.zACHc3._8WVQ2.T21Gw2):"I"( -0x1e):"cc");__asm __volatile("andl %0,%1": :"r"(OgFMa4[LigBO2]),"m"( -J7Iki4->fV7o35->BEfdP):"cc");J7Iki4->RZWDZ2[LigBO2]=nusR52;nusR52-> -Lrwko2=(tJ1Kb4* )WHQ_F1;{if(!(WHQ_F1->wkiYO4==0))goto LowUb;{JbQTW( -J7Iki4,WHQ_F1);}LowUb:;}}static DCf0T2*__fastcall ITvPG2(kWMzp1* -J7Iki4){{if(!(__builtin_expect(J7Iki4->QLWyF2!=0,0x1)))goto PcBHe4;{ -DCf0T2*esWTk2=J7Iki4->QLWyF2;J7Iki4->QLWyF2=J7Iki4->QLWyF2->woMv11. -OXCDa4;esWTk2->Xx6Ti3=0;esWTk2->a02Gz4=0;esWTk2->woMv11.OXCDa4=esWTk2 -->woMv11.neQ2f1=0;esWTk2->NpyOc1.OXCDa4=esWTk2->NpyOc1.neQ2f1=0; -esWTk2->NpyOc1.GEbPX4=esWTk2->NpyOc1.qXXnD2=0;esWTk2->NpyOc1.yjr7l4=0 -;return esWTk2;}goto J8CgD1;PcBHe4:;return 0;J8CgD1:;}}__forceinline -static void G7h9S3(kWMzp1*J7Iki4,DCf0T2*esWTk2){esWTk2->woMv11. -OXCDa4=J7Iki4->QLWyF2;J7Iki4->QLWyF2=esWTk2;}static void __fastcall -pQ2UC1(DCf0T2*wkiYO4){unsigned X3V8j4;wkiYO4->woMv11.pT8M75=0;X3V8j4= -0;{MbSIY:{wkiYO4->woMv11.daUKU2[X3V8j4].dZK6h3=0;}if(++X3V8j4<014)goto -MbSIY;};}static void __fastcall IqzqH2(DCf0T2*wkiYO4){unsigned X3V8j4 -;{X3V8j4=0;maKE61:if(!(wkiYO4->woMv11.daUKU2[X3V8j4].dZK6h3!=0&& -X3V8j4<014))goto zr3bw2;goto uzzFH1;g0ki44:X3V8j4++;goto maKE61; -uzzFH1:;goto g0ki44;zr3bw2:;}wkiYO4->woMv11.pT8M75=X3V8j4;}static void -__fastcall PPMOH(kWMzp1*J7Iki4,DCf0T2*wkiYO4,unsigned LigBO2){ErbGq4* -YzCy24;unsigned U0U7z1=0;{if(!(!J7Iki4->mNYxW2[LigBO2]))goto tF9n33; -U0U7z1=g5zpH4;tF9n33:;}{if(!(!J7Iki4->nCdFc[LigBO2]))goto gVh3P; -U0U7z1|=s9FHT4;gVh3P:;}YzCy24=wkiYO4->woMv11.daUKU2;{kGmPU3:if(!( -YzCy24->dZK6h3!=0))goto iY9cs3;{{if(!(YzCy24->V9ej93.fbiOR4==0&& -YzCy24->V9ej93.SpbRG4!=0))goto H1k4E1;YzCy24->V9ej93.Y81UE3|=U0U7z1& -WAyh21;H1k4E1:;}{if(!(YzCy24->V9ej93.SpbRG4==0&&YzCy24->V9ej93.fbiOR4 -!=0))goto aB9s_3;YzCy24->V9ej93.Y81UE3|=U0U7z1&TzyBa1;aB9s_3:;}YzCy24 -++;}goto kGmPU3;iY9cs3:;}}static void __fastcall V_S8_2(DCf0T2* -wkiYO4,enum dUSVs Smebz2,unsigned QvZLK){unsigned X3V8j4;{X3V8j4=0; -j2av14:if(!(X3V8j4<014))goto U28L81;goto BxNe64;cYcNq:X3V8j4++;goto -j2av14;BxNe64:{ErbGq4*YzCy24=&wkiYO4->woMv11.daUKU2[X3V8j4];switch( -Smebz2){case PxKBA2:;{if(!(YzCy24->V9ej93.fbiOR4))goto zIP1U3;goto -cYcNq;zIP1U3:;}YzCy24->V9ej93.fbiOR4|=01;YzCy24->V9ej93.Y81UE3|=QvZLK -;break;case ll1kg3:;{if(!(YzCy24->V9ej93.SpbRG4))goto o8ozS1;goto -cYcNq;o8ozS1:;}YzCy24->V9ej93.SpbRG4|=01;YzCy24->V9ej93.Y81UE3|=QvZLK -;break;case In2Nl4:case w3eQb2:{if(!(YzCy24->V9ej93.SpbRG4||YzCy24-> -V9ej93.fbiOR4||YzCy24->V9ej93.Y81UE3||YzCy24->V9ej93.XpfBS||YzCy24-> -V9ej93.O6kQX4))goto ENGVa3;goto cYcNq;ENGVa3:;}YzCy24->V9ej93.cw78L3 -|=(Smebz2==In2Nl4)?1:~0u;break;case LR7D_3:{if(!(YzCy24->V9ej93. -fbiOR4||YzCy24->V9ej93.SpbRG4||YzCy24->V9ej93.Y81UE3))goto I5_OH2; -goto cYcNq;I5_OH2:;}YzCy24->V9ej93.XpfBS|=01;break;case d5Rc74:{if(!( -YzCy24->V9ej93.fbiOR4||YzCy24->V9ej93.SpbRG4||YzCy24->V9ej93.Y81UE3))goto -jbV8Y;goto cYcNq;jbV8Y:;}YzCy24->V9ej93.O6kQX4|=01;break;case cXuz63: -case b4O7W4:case OKQI31:case FqrfM3:case HMsf02:case p_EZu3:{if(!( -YzCy24->V9ej93.fbiOR4||YzCy24->V9ej93.SpbRG4||YzCy24->V9ej93.Y81UE3))goto -YMPj34;goto cYcNq;YMPj34:;}YzCy24->V9ej93.Y81UE3|=Smebz2;break; -default:;}return;}goto cYcNq;U28L81:;};}static void __fastcall CEoOx4 -(kWMzp1*J7Iki4,DCf0T2*wkiYO4,unsigned LigBO2){{if(!(J7Iki4->nCdFc[ -LigBO2]))goto ginx92;{V_S8_2(wkiYO4,PxKBA2,Nt0Ut1);V_S8_2(wkiYO4, -In2Nl4,0);V_S8_2(wkiYO4,PxKBA2,s9FHT4|EIMqn1);V_S8_2(wkiYO4,w3eQb2,0); -J7Iki4->nCdFc[LigBO2]=0;{if(!(!J7Iki4->l_AcZ[LigBO2]))goto kBtl75;{ -V_S8_2(wkiYO4,LR7D_3,0);V_S8_2(wkiYO4,PxKBA2,s9FHT4|EIMqn1);}kBtl75:; -}}ginx92:;}}static void __fastcall _Tsw51(kWMzp1*J7Iki4,DCf0T2*wkiYO4 -,unsigned LigBO2){{if(!(J7Iki4->mNYxW2[LigBO2]))goto CB24p2;{V_S8_2( -wkiYO4,ll1kg3,RQJum);V_S8_2(wkiYO4,In2Nl4,0);V_S8_2(wkiYO4,ll1kg3, -g5zpH4);V_S8_2(wkiYO4,w3eQb2,0);J7Iki4->mNYxW2[LigBO2]=0;{if(!(! -J7Iki4->nvFyD4[LigBO2]))goto tiFZ71;{V_S8_2(wkiYO4,LR7D_3,0);V_S8_2( -wkiYO4,ll1kg3,g5zpH4);}tiFZ71:;}}CB24p2:;}}static void __fastcall -JkRZr3(kWMzp1*J7Iki4,DCf0T2*wkiYO4,unsigned LigBO2){{if(!(!J7Iki4-> -nCdFc[LigBO2]))goto YarQI;{{if(!(!J7Iki4->mNYxW2[LigBO2]))goto AnhYe; -{V_S8_2(wkiYO4,d5Rc74,0);}AnhYe:;}J7Iki4->nCdFc[LigBO2]=1;V_S8_2( -wkiYO4,PxKBA2,aez0x4);}YarQI:;}}static void __fastcall OiC8d(kWMzp1* -J7Iki4,DCf0T2*wkiYO4,unsigned LigBO2){{if(!(!J7Iki4->mNYxW2[LigBO2]))goto -gh9_d3;{{if(!(!J7Iki4->nCdFc[LigBO2]))goto RvzXA1;{V_S8_2(wkiYO4, -d5Rc74,0);}RvzXA1:;}J7Iki4->mNYxW2[LigBO2]=0x1;V_S8_2(wkiYO4,ll1kg3, -aCIS84);}gh9_d3:;}}__noinline static void __fastcall YBrPF4(kWMzp1* -J7Iki4){J7Iki4->DL14H3++;{Wu9eN2:if(!(J7Iki4->CUhqx4.pBSeu3!=0))goto -Fghvc;{DCf0T2*esWTk2=J7Iki4->CUhqx4.pBSeu3;{J7Iki4->CUhqx4.pBSeu3= -(J7Iki4->CUhqx4.pBSeu3)->woMv11.OXCDa4;{if(!(J7Iki4->CUhqx4.pBSeu3))goto -ez9gZ3;(J7Iki4->CUhqx4.pBSeu3)->woMv11.neQ2f1=0;goto cim7z3;ez9gZ3:; -J7Iki4->CUhqx4.WHQ_F1=0;cim7z3:;};};SdYiI(J7Iki4,esWTk2);}goto -Wu9eN2;Fghvc:;}J7Iki4->DL14H3--;}__forceinline static int XYR2k2( -kWMzp1*J7Iki4,unsigned LigBO2){{if(!(J7Iki4->nvFyD4[LigBO2]!=J7Iki4-> -nCdFc[LigBO2]))goto _N0P51;return 0x1;_N0P51:;}{if(!(J7Iki4->l_AcZ[ -LigBO2]!=J7Iki4->mNYxW2[LigBO2]))goto OLrkM2;return 0x1;OLrkM2:;}{if( -!(J7Iki4->nvFyD4[LigBO2]||J7Iki4->l_AcZ[LigBO2]))goto yl3xl4;{{if(!( -J7Iki4->LFVWc4[LigBO2]!=J7Iki4->zM0Qt3[LigBO2]))goto H5Gor4;return 1; -H5Gor4:;}{if(!(J7Iki4->ZWSDs2.s_Lmx3&sTQei1[LigBO2]))goto Nf3bE4; -return 01;Nf3bE4:;}}yl3xl4:;}return 0;}__forceinline static void -nxbQg1(kWMzp1*J7Iki4,DCf0T2*esWTk2){int X3V8j4=32-1;{Ylr7z2:{{if(!( -J7Iki4->mNYxW2[X3V8j4]||J7Iki4->nCdFc[X3V8j4]))goto wpi3B2;{V_S8_2( -esWTk2,b4O7W4,0);V_S8_2(esWTk2,w3eQb2,0);goto x_BL64;}wpi3B2:;}}if(-- -X3V8j4>=0)goto Ylr7z2;x_BL64:;};V_S8_2(esWTk2,LR7D_3,0);V_S8_2(esWTk2 -,cXuz63,0);{if(!(X3V8j4<32))goto ZIuBS1;V_S8_2(esWTk2,w3eQb2,0); -ZIuBS1:;}X3V8j4=32-0x1;{q2hO6:{{if(!(J7Iki4->l_AcZ[X3V8j4]||J7Iki4-> -nvFyD4[X3V8j4]))goto s0R_k;{V_S8_2(esWTk2,In2Nl4,0);V_S8_2(esWTk2, -d5Rc74,0);V_S8_2(esWTk2,cXuz63,0);V_S8_2(esWTk2,In2Nl4,0);V_S8_2( -esWTk2,OKQI31,0);goto DPrk91;}s0R_k:;}}if(--X3V8j4>=0)goto q2hO6; -DPrk91:;};}__forceinline static void mux6R2(kWMzp1*J7Iki4,DCf0T2* -esWTk2,unsigned LigBO2){esWTk2->woMv11.LigBO2=LigBO2;{if(!(J7Iki4-> -LFVWc4[LigBO2]!=J7Iki4->zM0Qt3[LigBO2]||(J7Iki4->ZWSDs2.s_Lmx3&sTQei1 -[LigBO2])!=0))goto K7id2;{_Tsw51(J7Iki4,esWTk2,LigBO2);CEoOx4(J7Iki4, -esWTk2,LigBO2);PPMOH(J7Iki4,esWTk2,LigBO2);}K7id2:;}{if(!(J7Iki4-> -l_AcZ[LigBO2]))goto dIOGi2;OiC8d(J7Iki4,esWTk2,LigBO2);goto RLpme3; -dIOGi2:;_Tsw51(J7Iki4,esWTk2,LigBO2);RLpme3:;}{if(!(J7Iki4->nvFyD4[ -LigBO2]))goto yJqdA4;JkRZr3(J7Iki4,esWTk2,LigBO2);goto FCBHJ2;yJqdA4: -;CEoOx4(J7Iki4,esWTk2,LigBO2);FCBHJ2:;}PPMOH(J7Iki4,esWTk2,LigBO2);} -__noinline static void __fastcall SdYiI(kWMzp1*J7Iki4,DCf0T2*esWTk2){ -QDNE6*a02Gz4=esWTk2->a02Gz4;esWTk2->Xx6Ti3++;{WDANZ4:{{if(!(! -xnb4g3(J7Iki4,a02Gz4,esWTk2)))goto TcAf85;{int X3V8j4,LigBO2=a02Gz4-> -NpyOc1.NNh015.LigBO2;{if(!(!(a02Gz4->QvZLK&(0x2u|32u))||(a02Gz4-> -QvZLK&(01u|16u))))goto s0wE55;{{if(!(a02Gz4->QvZLK&4096u))goto lWjhe1 -;{a02Gz4->QvZLK&=~4096u;J7Iki4->qWRLr4=a02Gz4->NpyOc1.Or9Ds4!=0; -J7Iki4->TrqaA=0x1;}lWjhe1:;}{if(!(a02Gz4->QvZLK&512u))goto ziNDy3;{ -a02Gz4->QvZLK&=~512u;X3V8j4=32-0x1;{C3fIc4:{J7Iki4->FmCLm3[X3V8j4]= -a02Gz4->NpyOc1.sN5Zi1.duPf84[X3V8j4];}if(--X3V8j4>=0)goto C3fIc4;}; -J7Iki4->TrqaA|=TFC2u3(J7Iki4);}ziNDy3:;}{if(!(a02Gz4->QvZLK&1024u))goto -TdRVs1;{a02Gz4->QvZLK&=~1024u;X3V8j4=32-01;{EmxrA2:{mthh13(J7Iki4, -a02Gz4->NpyOc1.sN5Zi1.M__vR3[X3V8j4],X3V8j4);}if(--X3V8j4>=0)goto -EmxrA2;};J7Iki4->TrqaA|=TFC2u3(J7Iki4);}TdRVs1:;}{if(!(a02Gz4->QvZLK& -2048u))goto Ifkj42;{a02Gz4->QvZLK&=~2048u;mthh13(J7Iki4,a02Gz4-> -NpyOc1.NNh015.kF78X1,LigBO2);J7Iki4->TrqaA|=TFC2u3(J7Iki4);}Ifkj42:;} -{if(!(a02Gz4->QvZLK&256u))goto tb4GG3;{a02Gz4->QvZLK&=~256u;J7Iki4-> -zM0Qt3[LigBO2]=a02Gz4->NpyOc1.NNh015.sxr445;J7Iki4->TrqaA=0x1;}tb4GG3 -:;}}s0wE55:;}{if(!(a02Gz4->QvZLK&1u))goto pwG_r2;{a02Gz4->QvZLK&=~ -0x1u;J7Iki4->nvFyD4[LigBO2]=1;J7Iki4->TrqaA=1;}pwG_r2:;}{if(!(a02Gz4 -->QvZLK&16u))goto KL7cF;{a02Gz4->QvZLK&=~16u;J7Iki4->l_AcZ[LigBO2]=1; -J7Iki4->TrqaA=01;}KL7cF:;}{if(!(a02Gz4->QvZLK&8u))goto ZkkNv2;{a02Gz4 -->QvZLK&=~0x8u;a02Gz4->NpyOc1.uwYQG1.BLFVJ4=0;esWTk2->Xx6Ti3++;{( -esWTk2)->NpyOc1.OXCDa4=0;(esWTk2)->NpyOc1.neQ2f1=J7Iki4->pnKue2[ -LigBO2].WHQ_F1;{if(!(J7Iki4->pnKue2[LigBO2].WHQ_F1))goto _JRZK1;( -J7Iki4->pnKue2[LigBO2].WHQ_F1)->NpyOc1.OXCDa4=esWTk2;goto FeP4W3; -_JRZK1:;J7Iki4->pnKue2[LigBO2].pBSeu3=esWTk2;FeP4W3:;}J7Iki4->pnKue2[ -LigBO2].WHQ_F1=esWTk2;};gYC_T3(J7Iki4,LigBO2);}ZkkNv2:;}{if(!( -a02Gz4->QvZLK&128u))goto fqtyd4;{a02Gz4->QvZLK&=~128u;a02Gz4->NpyOc1. -JI0PC2.n1IfW3=0;a02Gz4->NpyOc1.JI0PC2.bc1R53=0;esWTk2->Xx6Ti3++;{( -esWTk2)->NpyOc1.OXCDa4=0;(esWTk2)->NpyOc1.neQ2f1=J7Iki4->_jfrJ1[ -LigBO2].WHQ_F1;{if(!(J7Iki4->_jfrJ1[LigBO2].WHQ_F1))goto LcjXp2;( -J7Iki4->_jfrJ1[LigBO2].WHQ_F1)->NpyOc1.OXCDa4=esWTk2;goto XSN5P3; -LcjXp2:;J7Iki4->_jfrJ1[LigBO2].pBSeu3=esWTk2;XSN5P3:;}J7Iki4->_jfrJ1[ -LigBO2].WHQ_F1=esWTk2;};q0ypK(J7Iki4,LigBO2);}fqtyd4:;}{if(!( -esWTk2->Xx6Ti3<=01))goto mUGg23;{{if(!(a02Gz4->QvZLK&0x2u))goto i5IS4 -;{a02Gz4->QvZLK&=~02u;J7Iki4->nvFyD4[LigBO2]=0;J7Iki4->TrqaA=01;} -i5IS4:;}{if(!(a02Gz4->QvZLK&32u))goto MPkCL2;{a02Gz4->QvZLK&=~32u; -J7Iki4->l_AcZ[LigBO2]=0;J7Iki4->TrqaA=01;}MPkCL2:;}}mUGg23:;}{if(!(( -a02Gz4->QvZLK&8192u)&&J7Iki4->TrqaA))goto bK47E4;{unsigned gy1tx2=0; -J7Iki4->TrqaA=0;X3V8j4=32-01;{ftVDr:{{if(!(XYR2k2(J7Iki4,X3V8j4)))goto -aoI7b;{{if(!(++gy1tx2>0x1))goto T4nbC1;goto l0TIu2;goto D9Tnd2;T4nbC1 -:;LigBO2=X3V8j4;D9Tnd2:;}}aoI7b:;}}if(--X3V8j4>=0)goto ftVDr;l0TIu2:; -};{if(!(gy1tx2>0||J7Iki4->MIvbE3!=J7Iki4->qWRLr4))goto wYt8Z4;{pQ2UC1 -(esWTk2);{if(!(gy1tx2>0x1||J7Iki4->ZWSDs2.s_Lmx3!=0))goto Py8oW1; -nxbQg1(J7Iki4,esWTk2);goto tVN2m4;Py8oW1:;{if(!(gy1tx2))goto Cn8Hk1; -mux6R2(J7Iki4,esWTk2,LigBO2);Cn8Hk1:;}tVN2m4:;}{if(!(J7Iki4->MIvbE3!= -J7Iki4->qWRLr4))goto KE2tn1;V_S8_2(esWTk2,J7Iki4->qWRLr4?FqrfM3: -p_EZu3,0);KE2tn1:;}IqzqH2(esWTk2);zfjz55(J7Iki4,esWTk2);N5Uxq(J7Iki4); -}wYt8Z4:;}}bK47E4:;}}TcAf85:;};}if(esWTk2->Xx6Ti3==0x1&&esWTk2-> -a02Gz4->QvZLK&((1u|02u|0|0x8u|16u|32u|128u|256u|512u|2048u|4096u)|64u -))goto WDANZ4;};z5sap1(J7Iki4,esWTk2);}__forceinline static void -pxiAh4(kWMzp1*J7Iki4,DCf0T2*esWTk2,unsigned M1Kp62){unsigned X3V8j4, -M7M9y;X3V8j4=0;{i5M_e4:{{if(!(M1Kp62<=017))goto Q_I4z;M7M9y=M1Kp62; -goto Fucd04;Q_I4z:;{if(!(M1Kp62<=0x1e))goto vnlQf3;M7M9y=M1Kp62/02; -goto RDIwM;vnlQf3:;M7M9y=15;RDIwM:;}Fucd04:;}esWTk2->woMv11.daUKU2[ -X3V8j4].dZK6h3=0;esWTk2->woMv11.daUKU2[X3V8j4].V9ej93.cw78L3|=M7M9y; -X3V8j4++;}if(M1Kp62-=M7M9y)goto i5M_e4;};esWTk2->woMv11.pT8M75=X3V8j4 -;zfjz55(J7Iki4,esWTk2);}__noinline static void GV2iC4(kWMzp1*J7Iki4, -unsigned LigBO2,unsigned QvZLK){DCf0T2*esWTk2;{if(!(J7Iki4->YRHFy-> -b_7cQ4))goto JmcXo4;{uYS5N2(&J7Iki4->h2LrH3);J7Iki4->YRHFy->b_7cQ4( -J7Iki4->YRHFy,LigBO2,8388608ul);h2LrH3(&J7Iki4->h2LrH3);}JmcXo4:;} -esWTk2=J7Iki4->eWAnF[LigBO2];{if(!(esWTk2==0))goto mglUF3;{esWTk2= -ITvPG2(J7Iki4);{if(!(__builtin_expect(esWTk2==0,0)))goto uF_zA3;{{if( -!(J7Iki4->YRHFy->b_7cQ4))goto YAcOG4;{uYS5N2(&J7Iki4->h2LrH3);J7Iki4 -->YRHFy->b_7cQ4(J7Iki4->YRHFy,LigBO2,01ul);h2LrH3(&J7Iki4->h2LrH3);} -YAcOG4:;}return;}uF_zA3:;}J7Iki4->eWAnF[LigBO2]=esWTk2;{if(!(J7Iki4-> -nCdFc[LigBO2]))goto gIo9c2;QvZLK|=OULAA3;goto sX8l_2;gIo9c2:;QvZLK|= -s9FHT4;sX8l_2:;}esWTk2->woMv11.LigBO2=LigBO2;esWTk2->woMv11.daUKU2[0] -.dZK6h3=0;esWTk2->woMv11.daUKU2[0].V9ej93.Y81UE3|=QvZLK;esWTk2-> -woMv11.daUKU2[0].V9ej93.SpbRG4|=01;esWTk2->woMv11.pT8M75=1;zfjz55( -J7Iki4,esWTk2);}goto dLlx84;mglUF3:;{esWTk2->woMv11.daUKU2[0].V9ej93. -Y81UE3=(WAyh21&esWTk2->woMv11.daUKU2[0].V9ej93.Y81UE3)|QvZLK;esWTk2-> -woMv11.daUKU2[0].V9ej93.SpbRG4|=0x1;}dLlx84:;}J7Iki4->Rc7LY4.AC5eU1[ -LigBO2]=J7Iki4->Rc7LY4.rGUtq3[LigBO2].xzeKf3;}__noinline static void -B7zr54(kWMzp1*J7Iki4,unsigned LigBO2,unsigned QvZLK){DCf0T2*esWTk2; -{if(!(J7Iki4->YRHFy->b_7cQ4))goto hZlaW4;{uYS5N2(&J7Iki4->h2LrH3); -J7Iki4->YRHFy->b_7cQ4(J7Iki4->YRHFy,LigBO2,4194304ul);h2LrH3(&J7Iki4 -->h2LrH3);}hZlaW4:;}esWTk2=J7Iki4->eWAnF[LigBO2];{if(!(esWTk2==0))goto -K1B_B1;{esWTk2=ITvPG2(J7Iki4);{if(!(__builtin_expect(esWTk2==0,0)))goto -ZOTHr3;{{if(!(J7Iki4->YRHFy->b_7cQ4))goto EpEc3;{uYS5N2(&J7Iki4-> -h2LrH3);J7Iki4->YRHFy->b_7cQ4(J7Iki4->YRHFy,LigBO2,0x1ul);h2LrH3(& -J7Iki4->h2LrH3);}EpEc3:;}return;}ZOTHr3:;}J7Iki4->eWAnF[LigBO2]= -esWTk2;{if(!(J7Iki4->mNYxW2[LigBO2]))goto w5ONF1;QvZLK|=OuIaM2;goto -xtBMy2;w5ONF1:;QvZLK|=g5zpH4;xtBMy2:;}esWTk2->woMv11.LigBO2=LigBO2; -esWTk2->woMv11.daUKU2[0].dZK6h3=0;esWTk2->woMv11.daUKU2[0].V9ej93. -Y81UE3|=QvZLK;esWTk2->woMv11.daUKU2[0].V9ej93.fbiOR4|=0x1;esWTk2-> -woMv11.pT8M75=1;zfjz55(J7Iki4,esWTk2);}goto V0dyY3;K1B_B1:;{esWTk2-> -woMv11.daUKU2[0].V9ej93.Y81UE3=(TzyBa1&esWTk2->woMv11.daUKU2[0]. -V9ej93.Y81UE3)|QvZLK;esWTk2->woMv11.daUKU2[0].V9ej93.fbiOR4|=0x1;} -V0dyY3:;}J7Iki4->Rc7LY4.ZuiJe3[LigBO2]=J7Iki4->Rc7LY4.rGUtq3[LigBO2]. -FdyFT1;}__forceinline static void jsS_d1(kWMzp1*J7Iki4){DCf0T2*esWTk2 -;esWTk2=J7Iki4->Nlajt1.pBSeu3;{J7Iki4->Nlajt1.pBSeu3=(J7Iki4-> -Nlajt1.pBSeu3)->woMv11.OXCDa4;{if(!(J7Iki4->Nlajt1.pBSeu3))goto koOfX1 -;(J7Iki4->Nlajt1.pBSeu3)->woMv11.neQ2f1=0;goto L4mSq3;koOfX1:;J7Iki4 -->Nlajt1.WHQ_F1=0;L4mSq3:;};};z5sap1(J7Iki4,esWTk2);}__forceinline -static void fjOw35(kWMzp1*J7Iki4,unsigned LigBO2){DCf0T2*esWTk2; -esWTk2=J7Iki4->pnKue2[LigBO2].pBSeu3;{J7Iki4->pnKue2[LigBO2]. -pBSeu3=(J7Iki4->pnKue2[LigBO2].pBSeu3)->NpyOc1.OXCDa4;{if(!(J7Iki4-> -pnKue2[LigBO2].pBSeu3))goto e8p6a3;(J7Iki4->pnKue2[LigBO2].pBSeu3)-> -NpyOc1.neQ2f1=0;goto iQFWQ1;e8p6a3:;J7Iki4->pnKue2[LigBO2].WHQ_F1=0; -iQFWQ1:;};};LjWek1(J7Iki4,esWTk2,LigBO2);z5sap1(J7Iki4,esWTk2);} -__forceinline static void u0bxl3(kWMzp1*J7Iki4,unsigned LigBO2){ -DCf0T2*esWTk2;esWTk2=J7Iki4->_jfrJ1[LigBO2].pBSeu3;{J7Iki4-> -_jfrJ1[LigBO2].pBSeu3=(J7Iki4->_jfrJ1[LigBO2].pBSeu3)->NpyOc1.OXCDa4; -{if(!(J7Iki4->_jfrJ1[LigBO2].pBSeu3))goto q2AKk4;(J7Iki4->_jfrJ1[ -LigBO2].pBSeu3)->NpyOc1.neQ2f1=0;goto ya31H2;q2AKk4:;J7Iki4->_jfrJ1[ -LigBO2].WHQ_F1=0;ya31H2:;};};uKg3m2(J7Iki4,esWTk2);z5sap1(J7Iki4, -esWTk2);}static void _n1S03(kWMzp1*J7Iki4,QDNE6*a02Gz4){{if(!(a02Gz4 -->JbjvO4))goto UbBgT2;{uYS5N2(&J7Iki4->h2LrH3);a02Gz4->JbjvO4(J7Iki4 -->YRHFy,a02Gz4);h2LrH3(&J7Iki4->h2LrH3);}UbBgT2:;}}__noinline static -void __fastcall z5sap1(kWMzp1*J7Iki4,DCf0T2*esWTk2){{if(!(--esWTk2-> -Xx6Ti3==0))goto SWOC82;{QDNE6*a02Gz4=esWTk2->a02Gz4;{if(!(a02Gz4))goto -Xwrbb1;{{if(!(a02Gz4->QvZLK&((0x1u|02u|0|0x8u|16u|32u|128u|256u|512u| -2048u|4096u)|64u)))goto Jlhz11;{SdYiI(J7Iki4,esWTk2);return;}Jlhz11:; -};{if(!(a02Gz4->bPudJ3!=esWTk2))goto Z87eW;{{AnAG35:{QDNE6*OXCDa4=( -QDNE6* )a02Gz4->bPudJ3;a02Gz4->bPudJ3=0;_n1S03(J7Iki4,a02Gz4);a02Gz4= -OXCDa4;}if(a02Gz4!=0)goto AnAG35;};}goto wJzmn2;Z87eW:;{a02Gz4-> -bPudJ3=0;_n1S03(J7Iki4,a02Gz4);}wJzmn2:;}}Xwrbb1:;}G7h9S3(J7Iki4, -esWTk2);{if(!(J7Iki4->DL14H3==0))goto NKBZ63;YBrPF4(J7Iki4);NKBZ63:;} -;}SWOC82:;}}static void zfjz55(kWMzp1*J7Iki4,DCf0T2*esWTk2){esWTk2-> -Xx6Ti3++;esWTk2->woMv11.gfIP34=0;{(esWTk2)->woMv11.OXCDa4=0;( -esWTk2)->woMv11.neQ2f1=J7Iki4->Nlajt1.WHQ_F1;{if(!(J7Iki4->Nlajt1. -WHQ_F1))goto Hu116;(J7Iki4->Nlajt1.WHQ_F1)->woMv11.OXCDa4=esWTk2;goto -IM659;Hu116:;J7Iki4->Nlajt1.pBSeu3=esWTk2;IM659:;}J7Iki4->Nlajt1. -WHQ_F1=esWTk2;};yn0bR1(J7Iki4);}__noinline static void __fastcall -TR6nX1(kWMzp1*J7Iki4,unsigned LigBO2){J7Iki4->Rc7LY4.rGUtq3[LigBO2]. -xFtBP.dZK6h3=J7Iki4->Rc7LY4.rGUtq3[LigBO2].ZevQC2.dZK6h3=0;J7Iki4-> -Rc7LY4.rGUtq3[LigBO2].ZevQC2.V9ej93.aF6cv|=2;{if(!(J7Iki4->zM0Qt3[ -LigBO2]&16ul))goto O2juJ1;J7Iki4->Rc7LY4.rGUtq3[LigBO2].xFtBP.V9ej93. -knaph4|=1;O2juJ1:;}switch(J7Iki4->zM0Qt3[LigBO2]&017ul){case 0:J7Iki4 -->Rc7LY4.rGUtq3[LigBO2].xFtBP.V9ej93.L221t4|=erjzp3;J7Iki4->Rc7LY4. -rGUtq3[LigBO2].xFtBP.V9ej93.LoGHc4|=0|cv_9R4|DokQ43|QnuE7;{if(!( -J7Iki4->zM0Qt3[LigBO2]&512ul))goto f4GLj2;J7Iki4->Rc7LY4.rGUtq3[ -LigBO2].xFtBP.V9ej93.t0Vn23|=01;f4GLj2:;}{if(!(J7Iki4->zM0Qt3[LigBO2] -&2048ul))goto eRCV2;J7Iki4->Rc7LY4.rGUtq3[LigBO2].xFtBP.V9ej93.xk8cK4 -|=01;eRCV2:;}{if(!(J7Iki4->zM0Qt3[LigBO2]&256ul))goto qbbkE1;J7Iki4-> -Rc7LY4.rGUtq3[LigBO2].xFtBP.V9ej93.L8vCo2|=01;qbbkE1:;}{if(!(J7Iki4-> -zM0Qt3[LigBO2]&1024ul))goto jiGoK2;J7Iki4->Rc7LY4.rGUtq3[LigBO2]. -xFtBP.V9ej93.rwHIy4|=0x1;jiGoK2:;}break;case 1:J7Iki4->Rc7LY4.rGUtq3[ -LigBO2].xFtBP.V9ej93.L221t4|=bWIkq;J7Iki4->Rc7LY4.rGUtq3[LigBO2]. -xFtBP.V9ej93.ltzXg3|=(J7Iki4->zM0Qt3[LigBO2]&50331648ul)>>24u;break; -case 0x2:J7Iki4->Rc7LY4.rGUtq3[LigBO2].xFtBP.V9ej93.L221t4|=Keg62;{if -(!(J7Iki4->zM0Qt3[LigBO2]&4096ul))goto D3tTQ4;{J7Iki4->Rc7LY4.rGUtq3[ -LigBO2].xFtBP.V9ej93.t0Vn23|=0x1;J7Iki4->Rc7LY4.rGUtq3[LigBO2].xFtBP. -V9ej93.xk8cK4|=(J7Iki4->zM0Qt3[LigBO2]&16711680ul)>>16u;}D3tTQ4:;}{if -(!(J7Iki4->zM0Qt3[LigBO2]&8192ul))goto g74P44;J7Iki4->Rc7LY4.rGUtq3[ -LigBO2].xFtBP.V9ej93.L8vCo2|=1;g74P44:;}break;case 3:case 4:J7Iki4-> -Rc7LY4.rGUtq3[LigBO2].xFtBP.V9ej93.L221t4|=_qLu61;{if(!(J7Iki4-> -zM0Qt3[LigBO2]&15ul))goto ch1Nw;J7Iki4->Rc7LY4.rGUtq3[LigBO2].xFtBP. -V9ej93.L8vCo2|=0x1;ch1Nw:;}break;default:;}J7Iki4->LFVWc4[LigBO2]= -J7Iki4->zM0Qt3[LigBO2];}__forceinline static unsigned long YGL9R3( -unsigned zXUbq2,int a8kio2){return a8kio2?WdFDP4(0,0x1,0,zXUbq2,0, -KahAO3):WdFDP4(0,0,01,zXUbq2,0,KahAO3);}__forceinline static unsigned -long FAUQ42(void){return WdFDP4(01,0,0,0,0,KahAO3);}__forceinline -static unsigned long hoRsQ4(enum t7TM23 eEI4l2){return WdFDP4(0,0,0,0 -,0,eEI4l2);}__forceinline static void xaQxL4(kWMzp1*J7Iki4){{if(!( -J7Iki4->YRHFy->b_7cQ4))goto syNnc3;{uYS5N2(&J7Iki4->h2LrH3);J7Iki4-> -YRHFy->b_7cQ4(J7Iki4->YRHFy,-01,010ul);h2LrH3(&J7Iki4->h2LrH3);} -syNnc3:;}}__forceinline static void wA_dp4(kWMzp1*J7Iki4){{if(!( -J7Iki4->YRHFy->b_7cQ4))goto Z8adO4;{uYS5N2(&J7Iki4->h2LrH3);J7Iki4-> -YRHFy->b_7cQ4(J7Iki4->YRHFy,-1,0x4ul);h2LrH3(&J7Iki4->h2LrH3);} -Z8adO4:;}}__forceinline static void dfhdh3(kWMzp1*J7Iki4,unsigned -LigBO2,unsigned long*spClj2,unsigned long*xoXsZ){unsigned long p3Xgs1 -=sTQei1[LigBO2];unsigned QvZLK=J7Iki4->Rc7LY4.rGUtq3[LigBO2].xFtBP. -V9ej93.D1JXh&(Jry9D1|InZ58|zYrRf4|UsDI23|oKUjX2|tyWsL1|hOtzj|vvbK44); -{if(!(QvZLK&zYrRf4))goto QTktG2; *spClj2&=~p3Xgs1;goto GniJJ1;QTktG2: -;switch(QvZLK&(UsDI23|oKUjX2|tyWsL1|vvbK44)){case s9FHT4:case Nt0Ut1: - *spClj2&=~p3Xgs1;break;case aez0x4: *spClj2|=p3Xgs1;break;case OULAA3 -:case BhIif3:case T8skA:break;default:;}GniJJ1:;}switch(QvZLK&(Jry9D1 -|InZ58|hOtzj)){case g5zpH4:case RQJum: *xoXsZ&=~p3Xgs1;break;case -aCIS84: *xoXsZ|=p3Xgs1;break;case OuIaM2:case Xlqk:case VHvU93:break; -default:;}}__noinline static void og0xA1(kWMzp1*J7Iki4){{if(!(J7Iki4 -->ZWSDs2.dJbtz4||J7Iki4->ZWSDs2.X_sGC1))goto UIg3j;{J7Iki4->ZWSDs2. -dJbtz4=0;J7Iki4->ZWSDs2.X_sGC1=0;fk7g83(J7Iki4);}UIg3j:;}}__noinline -static void __fastcall yn0bR1(kWMzp1*J7Iki4){{if(!(J7Iki4->vDEWd3==0))goto -t1t5N4;{J7Iki4->vDEWd3++;{mS2xE2:if(!(01))goto ycekz;{switch(J7Iki4-> -uyKJn2){case XlFgj4:{if(!(J7Iki4->Nlajt1.pBSeu3))goto A8NMR4;{DCf0T2* -esWTk2=J7Iki4->Nlajt1.pBSeu3;{if(!(esWTk2->woMv11.gfIP34>0))goto -XfnRo3;{int X3V8j4;ErbGq4*YzCy24=&esWTk2->woMv11.daUKU2[esWTk2-> -woMv11.gfIP34-1];unsigned long XpkU85=J7Iki4->ZWSDs2.X_sGC1;unsigned -long zfQZk=J7Iki4->ZWSDs2.dJbtz4;{if(!(YzCy24->V9ej93.fbiOR4||YzCy24 -->V9ej93.SpbRG4))goto gvjYx2;dfhdh3(J7Iki4,esWTk2->woMv11.LigBO2,& -XpkU85,&zfQZk);goto obcrI4;gvjYx2:;{if(!(YzCy24->V9ej93.Y81UE3== -OKQI31))goto sQRs_2;{X3V8j4=32-0x1;{FsNgS4:{dfhdh3(J7Iki4,X3V8j4,& -XpkU85,&zfQZk);}if(--X3V8j4>=0)goto FsNgS4;};}sQRs_2:;}obcrI4:;}{if(! -(J7Iki4->ZWSDs2.dJbtz4!=zfQZk||J7Iki4->ZWSDs2.X_sGC1!=XpkU85))goto -tDCe71;{J7Iki4->ZWSDs2.dJbtz4=zfQZk;J7Iki4->ZWSDs2.X_sGC1=XpkU85; -fk7g83(J7Iki4);}tDCe71:;}}XfnRo3:;}}A8NMR4:;}J7Iki4->uyKJn2=blWHd2; -case blWHd2:{if(!(J7Iki4->Nlajt1.pBSeu3==0))goto HgIKW1;{J7Iki4-> -fV7o35->y8QlL=0;goto LVAok1;}HgIKW1:;}{if(!(J7Iki4->Nlajt1.pBSeu3-> -woMv11.gfIP34>=J7Iki4->Nlajt1.pBSeu3->woMv11.pT8M75))goto W6ZSZ4;{ -jsS_d1(J7Iki4);}goto iaTgs3;W6ZSZ4:;{DCf0T2*esWTk2=J7Iki4->Nlajt1. -pBSeu3;{ZRVsD1:if(!(esWTk2->woMv11.gfIP34woMv11.pT8M75))goto -AzKhe;goto L_kbq3;kvBl65:;goto ZRVsD1;L_kbq3:{ErbGq4*YzCy24=&esWTk2-> -woMv11.daUKU2[esWTk2->woMv11.gfIP34];{if(!(YzCy24->V9ej93.cw78L3))goto -_ZNHV4;{gw6c82(J7Iki4,YzCy24->V9ej93.cw78L3);YzCy24->V9ej93.cw78L3=0; -goto eKHB1;}_ZNHV4:;}esWTk2->woMv11.gfIP34++;{if(!(YzCy24->V9ej93. -SpbRG4||YzCy24->V9ej93.fbiOR4))goto mwxOb4;{unsigned LigBO2=esWTk2-> -woMv11.LigBO2;{if(!(esWTk2==J7Iki4->eWAnF[LigBO2]))goto PQet5;J7Iki4 -->eWAnF[LigBO2]=0;PQet5:;}{if(!(YzCy24->V9ej93.XpfBS))goto TpLpS;{ -VcwKo1(J7Iki4,LigBO2);}TpLpS:;}{if(!(YzCy24->V9ej93.O6kQX4))goto -wMk4l3;{TR6nX1(J7Iki4,LigBO2);}wMk4l3:;}J7Iki4->Rc7LY4.rGUtq3[LigBO2 -].xFtBP.V9ej93.D1JXh=YzCy24->V9ej93.Y81UE3;{if(!(J7Iki4->ZWSDs2. -s_Lmx3&sTQei1[LigBO2]))goto SY7l82;{RQO4U4(J7Iki4);Zg2fI4(J7Iki4, -YGL9R3(LigBO2,01));Vtxp55(J7Iki4);}goto obDHQ;SY7l82:;Zg2fI4(J7Iki4, -YGL9R3(LigBO2,0));obDHQ:;}goto eKHB1;}goto KCGlP3;mwxOb4:;{int X3V8j4 -;{if(!(YzCy24->V9ej93.XpfBS))goto r5oda2;{X3V8j4=32-01;{COx9t4:{ -VcwKo1(J7Iki4,X3V8j4);}if(--X3V8j4>=0)goto COx9t4;};}r5oda2:;}{if(!( -YzCy24->V9ej93.O6kQX4))goto DG4xM4;{X3V8j4=32-1;{PZiAS2:{{if(!( -J7Iki4->nvFyD4[X3V8j4]||J7Iki4->l_AcZ[X3V8j4]))goto J3Ld11;TR6nX1( -J7Iki4,X3V8j4);J3Ld11:;}}if(--X3V8j4>=0)goto PZiAS2;};RQO4U4(J7Iki4); -Vtxp55(J7Iki4);}DG4xM4:;}switch(YzCy24->V9ej93.Y81UE3){case p_EZu3:; -Zg2fI4(J7Iki4,hoRsQ4(ALDl73));J7Iki4->MIvbE3=0;goto eKHB1;case FqrfM3 -:;Zg2fI4(J7Iki4,hoRsQ4(ZbGWr3));J7Iki4->MIvbE3=01;goto eKHB1;case -HMsf02:;Zg2fI4(J7Iki4,hoRsQ4(UDBom4));goto eKHB1;case b4O7W4:;X3V8j4= -32-01;{uLGca4:{unsigned EhXZB1;{if(!(J7Iki4->mNYxW2[X3V8j4]))goto -q7DZK;EhXZB1=RQJum;goto IckaM3;q7DZK:;EhXZB1=g5zpH4;IckaM3:;}{if(!( -J7Iki4->nCdFc[X3V8j4]))goto PJxFC3;EhXZB1|=Nt0Ut1;goto DOjJH3;PJxFC3: -;EhXZB1|=s9FHT4|EIMqn1;DOjJH3:;}J7Iki4->Rc7LY4.rGUtq3[X3V8j4].xFtBP. -V9ej93.D1JXh=EhXZB1;}if(--X3V8j4>=0)goto uLGca4;};og0xA1(J7Iki4); -break;case cXuz63:;X3V8j4=32-0x1;{LNCIB:{J7Iki4->Rc7LY4.rGUtq3[X3V8j4 -].xFtBP.V9ej93.D1JXh=g5zpH4|s9FHT4|EIMqn1;}if(--X3V8j4>=0)goto LNCIB; -};og0xA1(J7Iki4);break;case OKQI31:;X3V8j4=32-01;{VX1Rp1:{unsigned -EhXZB1;tJ1Kb4*yzaNE1;yzaNE1=O6fhT(J7Iki4,X3V8j4);J7Iki4->Rc7LY4. -rGUtq3[X3V8j4].xzeKf3=yzaNE1?yzaNE1->MDSlK2:J7Iki4->PGmy4[X3V8j4]-> -MDSlK2;J7Iki4->mNYxW2[X3V8j4]=J7Iki4->l_AcZ[X3V8j4];{if(!(J7Iki4-> -l_AcZ[X3V8j4]))goto lw4bz4;{EhXZB1=aCIS84;J7Iki4->Rc7LY4.AC5eU1[ -X3V8j4]=J7Iki4->Rc7LY4.rGUtq3[X3V8j4].xzeKf3;J7Iki4->F46242|=sTQei1[ -X3V8j4];}goto raDWN;lw4bz4:;EhXZB1=g5zpH4;raDWN:;}yzaNE1=i3w1H(J7Iki4 -,X3V8j4);J7Iki4->Rc7LY4.rGUtq3[X3V8j4].FdyFT1=yzaNE1?yzaNE1->MDSlK2: -J7Iki4->RZWDZ2[X3V8j4]->MDSlK2;J7Iki4->nCdFc[X3V8j4]=J7Iki4->nvFyD4[ -X3V8j4];{if(!(J7Iki4->nvFyD4[X3V8j4]))goto chtI25;{EhXZB1|=aez0x4; -J7Iki4->Rc7LY4.ZuiJe3[X3V8j4]=J7Iki4->Rc7LY4.rGUtq3[X3V8j4].FdyFT1; -J7Iki4->a6vkI2|=sTQei1[X3V8j4];}goto hcihc1;chtI25:;EhXZB1|=s9FHT4| -EIMqn1;hcihc1:;}J7Iki4->Rc7LY4.rGUtq3[X3V8j4].xFtBP.V9ej93.D1JXh= -EhXZB1;}if(--X3V8j4>=0)goto VX1Rp1;};break;case 0:goto kvBl65;default -:;goto kvBl65;}Zg2fI4(J7Iki4,FAUQ42());goto eKHB1;}KCGlP3:;}}goto -kvBl65;AzKhe:;}eKHB1:{if(!(J7Iki4->jXwP42==0))goto SSGDT3;yoLEn3( -J7Iki4);SSGDT3:;}}iaTgs3:;}break;case JFrCi4:;J7Iki4->uyKJn2=blWHd2; -wA_dp4(J7Iki4);{if(!(J7Iki4->Nlajt1.pBSeu3))goto OFReQ2;{{if(!(J7Iki4 -->Nlajt1.pBSeu3->a02Gz4))goto HUCWK;J7Iki4->Nlajt1.pBSeu3->a02Gz4-> -j5MYx|=4ul;HUCWK:;}jsS_d1(J7Iki4);}OFReQ2:;}break;case PpoEe4:;J7Iki4 -->uyKJn2=blWHd2;xaQxL4(J7Iki4);{if(!(J7Iki4->Nlajt1.pBSeu3))goto -WgNsa4;{{if(!(J7Iki4->Nlajt1.pBSeu3->a02Gz4))goto iAj6S2;J7Iki4-> -Nlajt1.pBSeu3->a02Gz4->j5MYx|=0x8ul;iAj6S2:;}jsS_d1(J7Iki4);}WgNsa4:; -}break;case auwjC:goto LVAok1;case csvRg2:goto LVAok1;default:;};} -goto mS2xE2;ycekz:;}LVAok1:J7Iki4->vDEWd3--;}goto Zz1C01;t1t5N4:;{} -Zz1C01:;}}__forceinline static void dwKme1(kWMzp1*J7Iki4,unsigned -Os1bA3){{if(!(J7Iki4->uyKJn2==auwjC))goto v2HLJ4;{{if(!( -__builtin_expect((Os1bA3&(Sptqu|r3CcP2|gQf6j1))!=gQf6j1,0)))goto -RekSX2;{J7Iki4->uyKJn2=JFrCi4;}goto hNxv05;RekSX2:;{J7Iki4->uyKJn2= -XlFgj4;}hNxv05:;}}goto kjGyu3;v2HLJ4:;{{if(!(__builtin_expect(Os1bA3 -&r3CcP2,1)))goto xdxJg3;{J7Iki4->uyKJn2=XlFgj4;}goto IA1fx;xdxJg3:;{ -if(!(Os1bA3&Sptqu))goto _a4Qb4;{J7Iki4->uyKJn2=JFrCi4;}goto HutZr4; -_a4Qb4:;{{idIRM1:{__asm __volatile(""::);__asm __volatile( -"lock; addl $0,(%%esp)": : :"cc");__asm __volatile(""::);}if(0)goto -idIRM1;};J7Iki4->fV7o35->y8QlL=0;{Wsnkl3:{__asm __volatile(""::); -__asm __volatile("lock; addl $0,(%%esp)": : :"cc");__asm __volatile( -""::);}if(0)goto Wsnkl3;};nvqbt();{E_iqm1:{__asm __volatile(""::); -__asm __volatile("lock; addl $0,(%%esp)": : :"cc");__asm __volatile( -""::);}if(0)goto E_iqm1;};J7Iki4->fV7o35->Be1a54=Sptqu|r3CcP2|gQf6j1; -{Kvxpp3:{__asm __volatile(""::);__asm __volatile( -"lock; addl $0,(%%esp)": : :"cc");__asm __volatile(""::);}if(0)goto -Kvxpp3;};nvqbt();J7Iki4->uyKJn2=PpoEe4;}HutZr4:;}IA1fx:;}}kjGyu3:;} -yn0bR1(J7Iki4);}static enum bmwN91 cWGy25(kWMzp1*J7Iki4){unsigned -Vdg6P1,J2Fer3=0;unsigned long RcNOn;{rfb4A1:{__asm __volatile(""::); -__asm __volatile("lock; addl $0,(%%esp)": : :"cc");__asm __volatile( -""::);}if(0)goto rfb4A1;};J7Iki4->fV7o35->y8QlL=0;{p5QN85:{__asm -__volatile(""::);__asm __volatile("lock; addl $0,(%%esp)": : :"cc"); -__asm __volatile(""::);}if(0)goto p5QN85;};J7Iki4->fV7o35->Be1a54=~0u -;{CoPx_3:{__asm __volatile(""::);__asm __volatile( -"lock; addl $0,(%%esp)": : :"cc");__asm __volatile(""::);}if(0)goto -CoPx_3;};{if(!(J7Iki4->fV7o35->Be1a54&gQf6j1))goto zERlZ1;{return -wTSMD1;}zERlZ1:;}Vdg6P1=32;{lwCTs:{unsigned EVEnZ3=0;register unsigned -long(sHR2d4);__asm __volatile("pushfl; popl %0; cli":"=g"(sHR2d4));{ -IMpBA4:{__asm __volatile(""::);__asm __volatile( -"lock; addl $0,(%%esp)": : :"cc");__asm __volatile(""::);}if(0)goto -IMpBA4;};J7Iki4->fV7o35->y8QlL=15597584;{eIyA2:{{P5Pbv3:{__asm -__volatile(""::);__asm __volatile("lock; addl $0,(%%esp)": : :"cc"); -__asm __volatile(""::);}if(0)goto P5Pbv3;};{if(!(J7Iki4->fV7o35-> -Be1a54&gQf6j1))goto qLeaE1;goto uVmjX4;goto o2NIe3;qLeaE1:;EVEnZ3++; -o2NIe3:;}}if(EVEnZ3<32)goto eIyA2;uVmjX4:;};J7Iki4->fV7o35->y8QlL=0;{ -XyjFV1:{__asm __volatile(""::);__asm __volatile( -"lock; addl $0,(%%esp)": : :"cc");__asm __volatile(""::);}if(0)goto -XyjFV1;};J7Iki4->fV7o35->Be1a54=gQf6j1;{WU3Cl3:{__asm __volatile("":: -);__asm __volatile("lock; addl $0,(%%esp)": : :"cc");__asm __volatile -(""::);}if(0)goto WU3Cl3;};__asm __volatile("pushl %0; popfl": :"g"( -sHR2d4):"cc");{if(!(EVEnZ3<4||EVEnZ3>=32))goto HSTer4;{if(!(J2Fer3> -0x2))goto u1ED31;{return Wa6IF1;}goto RCFss2;u1ED31:;J2Fer3++;RCFss2 -:;}goto p5i6D;HSTer4:;J2Fer3=0;p5i6D:;}{if(!(J7Iki4->fV7o35->Be1a54& -gQf6j1))goto kOzYw2;{return wTSMD1;}kOzYw2:;}}if(--Vdg6P1)goto lwCTs -;};RcNOn=WdFDP4(0,0,0,0,0,KahAO3);{if(!(!TifAa1(J7Iki4,RcNOn)))goto -d1bSC;{{if(!(!TifAa1(J7Iki4,RcNOn)))goto VSmwf4;{{if(!(!TifAa1( -J7Iki4,RcNOn)))goto YNDL72;{return cy2jE4;}YNDL72:;}}VSmwf4:;}}d1bSC -:;}RcNOn=WdFDP4(0,0,0,0,01,KahAO3);{if(!(!TifAa1(J7Iki4,RcNOn)))goto -IPzvA4;{{if(!(!TifAa1(J7Iki4,RcNOn)))goto kLvtw2;{{if(!(!TifAa1( -J7Iki4,RcNOn)))goto YpjhR3;{return cy2jE4;}YpjhR3:;}}kLvtw2:;}} -IPzvA4:;}return tXFTB4;}static enum bmwN91 Plb1C3(kWMzp1*J7Iki4){ -unsigned long RcNOn;J7Iki4->fV7o35->x2akp.V9ej93.I9g9T1|=0x1;RcNOn= -hoRsQ4(ALDl73);{if(!(!TifAa1(J7Iki4,RcNOn)))goto X411V1;{{if(!(! -TifAa1(J7Iki4,RcNOn)))goto oChue3;{return cy2jE4;}oChue3:;}}X411V1:; -}WdqxE(J7Iki4,0x4);J7Iki4->fV7o35->x2akp.V9ej93.KfMd1&=0;{cKzYE4:{ -__asm __volatile(""::);__asm __volatile("lock; addl $0,(%%esp)": : : -"cc");__asm __volatile(""::);}if(0)goto cKzYE4;};RQO4U4(J7Iki4);RcNOn -=FAUQ42();{if(!(!TifAa1(J7Iki4,RcNOn)))goto Lkzmt4;{{if(!(!TifAa1( -J7Iki4,RcNOn)))goto yxhJn3;{return cy2jE4;}yxhJn3:;}}Lkzmt4:;}WdqxE( -J7Iki4,0x4);yoLEn3(J7Iki4);return tXFTB4;}__forceinline static int -Nq5gq(kWMzp1*J7Iki4,unsigned LigBO2){unsigned tXqwg=0;unsigned YBd0u= -0;DCf0T2*esWTk2;QDNE6*a02Gz4;tJ1Kb4*nusR52;esWTk2=J7Iki4->pnKue2[ -LigBO2].pBSeu3;a02Gz4=esWTk2->a02Gz4;nusR52=esWTk2->NpyOc1.GEbPX4;{ -if(!(nusR52!=0))goto Im7I32;{{z0p665:if(!(1))goto w9YaE;{{if(!( -nusR52->_8WVQ2.zACHc3._8WVQ2.V9ej93.Hqc15))goto IpOCN3;{YBd0u++;tXqwg -+=nusR52->_8WVQ2.zACHc3._8WVQ2.V9ej93.Hqc15;}IpOCN3:;}{if(!(nusR52-> -_8WVQ2.zACHc3._8WVQ2.V9ej93.DEVTm4))goto oEUKM;goto w9YaE;oEUKM:;}; -nusR52=osQ5M(J7Iki4,nusR52->_8WVQ2.zACHc3.eSf3B1);}goto z0p665;w9YaE -:;}}Im7I32:;};{e1zdp3:if(!(YBd0u<010||tXqwg<1024))goto K0PS_4;{ -unsigned wBvfo4,dAXWu2;{vhYwo:if(!(esWTk2->NpyOc1.yjr7l4>=a02Gz4-> -NpyOc1.uwYQG1.Fcabx))goto rtRgZ2;{esWTk2=esWTk2->NpyOc1.OXCDa4;{if(!( -esWTk2==0))goto mM2wb4;{return 1;}mM2wb4:;};a02Gz4=esWTk2->a02Gz4;} -goto vhYwo;rtRgZ2:;}nusR52=D77H33(J7Iki4,esWTk2);{if(!( -__builtin_expect(nusR52==0,0)))goto TnCss1;{{if(!(esWTk2->NpyOc1. -qXXnD2))goto FJo9S4;{}FJo9S4:;}{if(!(J7Iki4->pnKue2[LigBO2].pBSeu3-> -NpyOc1.GEbPX4==0))goto gKLhx2;{return 0;}goto KXgOV1;gKLhx2:;{return -01;}KXgOV1:;}}TnCss1:;}dAXWu2=a02Gz4->NpyOc1.uwYQG1.Fcabx-esWTk2-> -NpyOc1.yjr7l4;{if(!(dAXWu2>017774))goto HYIjv3;{if(!(dAXWu2>=017774*2 -))goto SQSyi;wBvfo4=017774;goto mJiY13;SQSyi:;wBvfo4=dAXWu2/0x2&~3u; -mJiY13:;}goto lcFs74;HYIjv3:;wBvfo4=dAXWu2;lcFs74:;};nusR52->_8WVQ2. -fbiOR4._8WVQ2.dZK6h3=1073741824ul|536870912ul|(wBvfo4<<16u);nusR52-> -_8WVQ2.zACHc3.agWoi2=a02Gz4->NpyOc1.uwYQG1.Avyuu1+esWTk2->NpyOc1. -yjr7l4;esWTk2->NpyOc1.yjr7l4+=wBvfo4;{if(!(esWTk2->NpyOc1.yjr7l4>= -a02Gz4->NpyOc1.uwYQG1.Fcabx))goto MR2SE3;{{if(!(a02Gz4->QvZLK&32768u))goto -jeGMS4;nusR52->_8WVQ2.fbiOR4._8WVQ2.dZK6h3|=2048ul;jeGMS4:;}{if(!(( -J7Iki4->LFVWc4[LigBO2]&128ul)!=0||(a02Gz4->QvZLK&16384u)!=0))goto -_mpEV4;{nusR52->_8WVQ2.fbiOR4._8WVQ2.dZK6h3|=2147483648ul;{if(!(( -J7Iki4->LFVWc4[LigBO2]&15ul)==0))goto GOOtv4;nusR52->_8WVQ2.fbiOR4. -_8WVQ2.dZK6h3|=0x1;GOOtv4:;}}_mpEV4:;}}MR2SE3:;}{if(!(esWTk2->NpyOc1. -GEbPX4==0))goto VJ_r55;{esWTk2->NpyOc1.GEbPX4=nusR52;}goto Zr_6O4; -VJ_r55:;{J7Iki4->RZWDZ2[LigBO2]->OXCDa4=nusR52;}Zr_6O4:;}fOVyT4( -J7Iki4,LigBO2,nusR52);esWTk2->NpyOc1.qXXnD2=nusR52;tXqwg+=wBvfo4; -YBd0u++;}goto e1zdp3;K0PS_4:;}return 1;}__noinline static tJ1Kb4* -i3w1H(kWMzp1*J7Iki4,unsigned LigBO2){{if(!(J7Iki4->pnKue2[LigBO2]. -pBSeu3==0))goto f_VTj2;return 0;f_VTj2:;}{if(!(!Nq5gq(J7Iki4,LigBO2)))goto -zUDsZ1;{J7Iki4->pnKue2[LigBO2].pBSeu3->a02Gz4->j5MYx|=0x1ul;{if(!( -J7Iki4->YRHFy->b_7cQ4))goto pqlS85;{uYS5N2(&J7Iki4->h2LrH3);J7Iki4-> -YRHFy->b_7cQ4(J7Iki4->YRHFy,LigBO2,01ul);h2LrH3(&J7Iki4->h2LrH3);} -pqlS85:;}fjOw35(J7Iki4,LigBO2);return 0;}zUDsZ1:;}return J7Iki4-> -pnKue2[LigBO2].pBSeu3->NpyOc1.GEbPX4;}__noinline static void gYC_T3( -kWMzp1*J7Iki4,int LigBO2){{if(!(LigBO2>=0))goto DjT5Q4;J7Iki4-> -a6vkI2|=sTQei1[LigBO2];goto cCsSw;DjT5Q4:;LigBO2=0;cCsSw:;}{if(!( -J7Iki4->QIA5L==0))goto sAo0c3;{J7Iki4->QIA5L=1;{oL3aI4:{{if(!(J7Iki4 -->a6vkI2&sTQei1[LigBO2]))goto RWVVa2;{unsigned long _oAId;tJ1Kb4* -yzaNE1;tJ1Kb4*keSgZ1=J7Iki4->RZWDZ2[LigBO2];yzaNE1=i3w1H(J7Iki4, -LigBO2);_oAId=J7Iki4->Rc7LY4.ZuiJe3[LigBO2];{if(!(yzaNE1==0))goto -IdWL8;{keSgZ1->_8WVQ2.fbiOR4._8WVQ2.dZK6h3=2147483648ul| -1073741824ul;{if(!(_oAId!=keSgZ1->MDSlK2))goto xp82U2;{J7Iki4-> -Rc7LY4.rGUtq3[LigBO2].FdyFT1=keSgZ1->MDSlK2;{if(!(J7Iki4->nCdFc[ -LigBO2]))goto DVFLm4;{unsigned QvZLK=BhIif3;B7zr54(J7Iki4,LigBO2, -QvZLK);}DVFLm4:;}}xp82U2:;}goto LVAok1;}IdWL8:;};J7Iki4->Rc7LY4. -rGUtq3[LigBO2].FdyFT1=yzaNE1->MDSlK2;{if(!(_oAId))goto oIbtC2;{tJ1Kb4 - *us8_Z4, *nusR52;{if(!(_oAId==yzaNE1->MDSlK2))goto B8Ifq1;{goto -LVAok1;}B8Ifq1:;}us8_Z4=osQ5M(J7Iki4,_oAId);{if(!(yzaNE1->Lrwko2== -us8_Z4))goto fxz9x3;{{if(!(us8_Z4->_8WVQ2.zACHc3.eSf3B1==yzaNE1-> -MDSlK2))goto myeQg;{goto LVAok1;}goto ULi9T2;myeQg:;{yzaNE1->Lrwko2 -=0;}ULi9T2:;}}fxz9x3:;}{if(!(yzaNE1->Lrwko2!=0))goto n2CnY;{nusR52= -yzaNE1;{ab1tV:if(!(!nusR52->_8WVQ2.zACHc3._8WVQ2.V9ej93.DEVTm4))goto -UKMEh;{tJ1Kb4*OXCDa4;{if(!(nusR52->_8WVQ2.zACHc3.eSf3B1==us8_Z4-> -MDSlK2))goto FYh3J2;{goto LVAok1;}FYh3J2:;}OXCDa4=osQ5M(J7Iki4, -nusR52->_8WVQ2.zACHc3.eSf3B1);{if(!(OXCDa4->Lrwko2!=nusR52))goto -T_rNX1;{goto UKMEh;}T_rNX1:;};nusR52=OXCDa4;}goto ab1tV;UKMEh:;}} -goto dC2KI2;n2CnY:;{}dC2KI2:;}us8_Z4->Lrwko2=0;nusR52=osQ5M(J7Iki4, -us8_Z4->_8WVQ2.zACHc3.eSf3B1);nusR52->Lrwko2=0;}oIbtC2:;}{if(!(yzaNE1 -!=J7Iki4->RZWDZ2[LigBO2]))goto Lpzrp2;fOVyT4(J7Iki4,LigBO2,yzaNE1); -Lpzrp2:;}{if(!(J7Iki4->nCdFc[LigBO2]))goto PQH2r4;{{if(!(_oAId!= -keSgZ1->MDSlK2))goto HX6TW1;{B7zr54(J7Iki4,LigBO2,T8skA);}HX6TW1:;}} -goto ubd8s4;PQH2r4:;{yzaNE1->Lrwko2=yzaNE1;}ubd8s4:;}LVAok1:J7Iki4-> -a6vkI2&=OgFMa4[LigBO2];}RWVVa2:;}LigBO2=(LigBO2+0x1)%32;}if(J7Iki4-> -a6vkI2)goto oL3aI4;};J7Iki4->QIA5L=0;}sAo0c3:;}}__forceinline static -void kueUq2(kWMzp1*J7Iki4,unsigned LigBO2,unsigned FKb152){J7Iki4-> -v1h0c2[LigBO2]|=FKb152;J7Iki4->ZWSDs2.twfX61|=sTQei1[LigBO2];} -__noinline static void UK8sN4(kWMzp1*J7Iki4){unsigned LigBO2,wBvfo4, -j5MYx,Vl2C45;unsigned long _oAId;DCf0T2*esWTk2;tJ1Kb4*nusR52;Vl2C45=( -256*02) *03;{YkQWU:{cbk1I1 mlK913;{if(!(010))goto pcvjC1;{unsigned -rprjq3=J7Iki4->MLZ_Y+(256*2)-0x8;{if(!(__builtin_expect(J7Iki4-> -KMSZr2[rprjq3%(256*02)]!=0,0)))goto e2IbG;{J7Iki4->a6vkI2= -0xFFFFFFFFul>>(32-32);{if(!(J7Iki4->YRHFy->b_7cQ4))goto CVYbb;{uYS5N2 -(&J7Iki4->h2LrH3);J7Iki4->YRHFy->b_7cQ4(J7Iki4->YRHFy,-0x1,262144ul); -h2LrH3(&J7Iki4->h2LrH3);}CVYbb:;}}e2IbG:;}}pcvjC1:;}mlK913.dZK6h3= -KAeao3(((long volatile* )(&J7Iki4->KMSZr2[J7Iki4->MLZ_Y])),0);{if(!( -__builtin_expect(mlK913.dZK6h3==0,0)))goto UrxuH3;{{if(!( -__builtin_expect(Vl2C45==(256*2) *03,0)))goto krOiU3;{unsigned X3V8j4 -=J7Iki4->MLZ_Y;{DTp3J3:{X3V8j4=(X3V8j4+0x1)%(256*2);mlK913.dZK6h3= -KAeao3(((long volatile* )(&J7Iki4->KMSZr2[X3V8j4])),0);{if(!(mlK913. -dZK6h3))goto dKE2i2;{J7Iki4->MLZ_Y=X3V8j4;goto NdUwf2;}dKE2i2:;}}if( -X3V8j4!=J7Iki4->MLZ_Y)goto DTp3J3;};}krOiU3:;}goto RSzFw3;}UrxuH3:;} -NdUwf2:;J7Iki4->MLZ_Y=(J7Iki4->MLZ_Y+1)%(256*0x2);{if(!( -__builtin_expect(mlK913.V9ej93.ADaUw!=eORWN1,0)))goto GPV2K1;{goto -YkQWU;}GPV2K1:;};LigBO2=mlK913.V9ej93.hj5891;{if(!((unsigned)32<( -unsigned)32&&LigBO2>=32))goto u2lRM2;{goto YkQWU;}u2lRM2:;}J7Iki4-> -a6vkI2|=sTQei1[LigBO2];_oAId=J7Iki4->Rc7LY4.ZuiJe3[LigBO2];esWTk2= -J7Iki4->pnKue2[LigBO2].pBSeu3;{if(!(__builtin_expect(mlK913.V9ej93. -nDLY04||mlK913.V9ej93.GrYG41,0)))goto trLqh;{j5MYx=0;{if(!(mlK913. -V9ej93.nDLY04))goto jRmCW3;{j5MYx|=2ul;}goto jF1xt;jRmCW3:;{if(!( -mlK913.V9ej93.KYiBO3&&mlK913.V9ej93.GrYG41))goto WCbUG1;{j5MYx|=32ul -;}goto D_jBx1;WCbUG1:;{j5MYx|=64ul;}D_jBx1:;}jF1xt:;}{if(!(esWTk2))goto -U13PG3;esWTk2->a02Gz4->j5MYx|=j5MYx;U13PG3:;}kueUq2(J7Iki4,LigBO2, -j5MYx);}trLqh:;}{if(!(__builtin_expect(!mlK913.V9ej93.WtICk3,0)))goto -wQGHB2;{goto YkQWU;}wQGHB2:;}{if(!(__builtin_expect(esWTk2==0,0)))goto -I_wxz;{goto sPUN83;}I_wxz:;}nusR52=esWTk2->NpyOc1.GEbPX4;{if(!( -__builtin_expect(nusR52==0,0)))goto PNEDs3;goto sPUN83;PNEDs3:;} -wBvfo4=nusR52->_8WVQ2.fbiOR4._8WVQ2.V9ej93.Hqc15;{if(!(nusR52->_8WVQ2 -.fbiOR4._8WVQ2.V9ej93.Ww9nZ4))goto QP4kl4;wBvfo4+=01u<<015;QP4kl4:;} -esWTk2->a02Gz4->NpyOc1.uwYQG1.BLFVJ4+=wBvfo4;{if(!(esWTk2->a02Gz4-> -NpyOc1.uwYQG1.BLFVJ4>=esWTk2->a02Gz4->NpyOc1.uwYQG1.Fcabx))goto _MoA13 -;{fjOw35(J7Iki4,LigBO2);}goto DGCZj;_MoA13:;{esWTk2->NpyOc1. -GEbPX4=((esWTk2->NpyOc1.GEbPX4))->OXCDa4;{if(!(esWTk2->NpyOc1.GEbPX4 -==0))goto GTljv4;{esWTk2->NpyOc1.qXXnD2=0;}GTljv4:;}}DGCZj:;}sPUN83:; -J7Iki4->a6vkI2|=sTQei1[LigBO2];}if(--Vl2C45)goto YkQWU;RSzFw3:;}; -gYC_T3(J7Iki4,-01);}static unsigned __fastcall YnF_24(QiOkk4 OS6VN2){ -unsigned j5MYx=0;{if(!(OS6VN2.V9ej93.TbIRU3))goto CzEWk1;j5MYx|= -1024ul;CzEWk1:;}{if(!(OS6VN2.V9ej93.Hw1x02))goto EGSg3;j5MYx|=2048ul; -EGSg3:;}{if(!(OS6VN2.V9ej93.pJ7gv1))goto nzoh14;j5MYx|=512ul;nzoh14:; -}{if(!(OS6VN2.V9ej93.ETBla3))goto bMF5K3;j5MYx|=4096ul;bMF5K3:;}{if(! -(OS6VN2.V9ej93.Gp2G51))goto h9opJ3;j5MYx|=8192ul;h9opJ3:;}{if(!( -OS6VN2.V9ej93.hAxq53))goto GGvQ51;j5MYx|=256ul;GGvQ51:;}{if(!(OS6VN2. -V9ej93.z1nNq2))goto eVrRl2;j5MYx|=128ul;eVrRl2:;}{if(!(j5MYx))goto -T9jme2;{}T9jme2:;}return j5MYx;}static unsigned __fastcall AkbwI1( -kWMzp1*J7Iki4,unsigned LigBO2,IxW_32 mlK913){unsigned VYzht3;tJ1Kb4* -nusR52;unsigned j5MYx=0;{if(!(__builtin_expect(mlK913.V9ej93.nDLY04 -||mlK913.V9ej93.TbIRU3,0)))goto njRLK2;{{if(!(mlK913.V9ej93.nDLY04))goto -TxRHu3;{j5MYx|=0x2ul;}TxRHu3:;}{if(!(mlK913.V9ej93.TbIRU3))goto -tvICL1;{j5MYx|=1024ul;}tvICL1:;}}njRLK2:;}nusR52=osQ5M(J7Iki4,J7Iki4 -->Rc7LY4.rGUtq3[LigBO2].xzeKf3);VYzht3=0;{V5lif4:{{if(!(nusR52== -J7Iki4->PGmy4[LigBO2]))goto i4zzA2;goto lQTl74;i4zzA2:;}{if(!(nusR52 -->_8WVQ2.SpbRG4.Yj6gL2.V9ej93.Vmiuc3))goto nR0Nt;j5MYx|=YnF_24(nusR52 -->_8WVQ2.SpbRG4.Yj6gL2);nR0Nt:;}nusR52=osQ5M(J7Iki4,nusR52->_8WVQ2. -zACHc3.eSf3B1);}if(nusR52->MDSlK2!=J7Iki4->Rc7LY4.AC5eU1[LigBO2]&& -nusR52->MDSlK2!=nusR52->_8WVQ2.zACHc3.eSf3B1)goto V5lif4;lQTl74:;}; -return j5MYx;}static void XHCWr2(kWMzp1*J7Iki4,unsigned LigBO2){ -QiOkk4 OS6VN2;OS6VN2.h80jx1=KAeao3(((long volatile* )(&J7Iki4->PGmy4[ -LigBO2]->_8WVQ2.SpbRG4.Yj6gL2.h80jx1)),0);{if(!(OS6VN2.h80jx1& -1073741824ul))goto EGxmw4;{unsigned j5MYx=YnF_24(OS6VN2);{if(!(OS6VN2 -.h80jx1&(2147483648ul|536805376ul)))goto TlNLh4;j5MYx|=128ul;TlNLh4:; -}{if(!(j5MYx))goto AzPQ35;kueUq2(J7Iki4,LigBO2,j5MYx);AzPQ35:;}} -EGxmw4:;}}__noinline static void jK7VQ3(kWMzp1*J7Iki4){int LigBO2, -j5MYx,Vl2C45;unsigned long c5SHY1;DCf0T2*esWTk2;tJ1Kb4*nusR52;int -kvYKl=0;Vl2C45=(256*2) *0x3;{VlZ2k:{IxW_32 mlK913;{if(!(010))goto -EneUG;{unsigned rprjq3=J7Iki4->yODLB3+(256*0x2)-0x8;{if(!( -__builtin_expect(J7Iki4->Ragva2[rprjq3%(256*2)]!=0,0)))goto uEgvT;{ -J7Iki4->F46242=0xFFFFFFFFul>>(32-32);{if(!(J7Iki4->YRHFy->b_7cQ4))goto -n8n7E3;{uYS5N2(&J7Iki4->h2LrH3);J7Iki4->YRHFy->b_7cQ4(J7Iki4->YRHFy, --1,524288ul);h2LrH3(&J7Iki4->h2LrH3);}n8n7E3:;}}uEgvT:;}}EneUG:;} -mlK913.dZK6h3=KAeao3(((long volatile* )(&J7Iki4->Ragva2[J7Iki4-> -yODLB3])),0);{if(!(__builtin_expect(mlK913.dZK6h3==0,0)))goto ARDIu1; -{{if(!(__builtin_expect(Vl2C45==(256*2) *03,0)))goto dgebC;{unsigned -X3V8j4=J7Iki4->yODLB3;{hph9c1:{X3V8j4=(X3V8j4+1)%(256*2);mlK913. -dZK6h3=KAeao3(((long volatile* )(&J7Iki4->Ragva2[X3V8j4])),0);{if(!( -mlK913.dZK6h3))goto aizpO2;{J7Iki4->yODLB3=X3V8j4;goto NdUwf2;}aizpO2 -:;}}if(X3V8j4!=J7Iki4->yODLB3)goto hph9c1;};}dgebC:;}{eh6MF:if(!( -__builtin_expect(kvYKl,0)))goto Pt3QC3;{nvqbt();LigBO2=32-01;{mfE5L1: -{esWTk2=J7Iki4->_jfrJ1[LigBO2].pBSeu3;{if(!(esWTk2))goto EkEeN1;{ -nusR52=esWTk2->NpyOc1.GEbPX4;{if(!(nusR52&&nusR52->_8WVQ2.SpbRG4. -Yj6gL2.V9ej93.Vmiuc3&&(c5SHY1=J7Iki4->Rc7LY4.AC5eU1[LigBO2])!=nusR52 -->MDSlK2))goto zgrSq2;{nvqbt();mlK913.dZK6h3=KAeao3(((long volatile* )( -&J7Iki4->Ragva2[J7Iki4->yODLB3])),0);{if(!(mlK913.dZK6h3))goto teFD23 -;goto NdUwf2;teFD23:;}goto HSsG5;}zgrSq2:;}}EkEeN1:;}}if(--LigBO2>=0)goto -mfE5L1;};--kvYKl;}goto eh6MF;Pt3QC3:;}goto dUxYz4;}ARDIu1:;}NdUwf2: -J7Iki4->yODLB3=(J7Iki4->yODLB3+01)%(256*0x2);{if(!(__builtin_expect( -mlK913.V9ej93.ADaUw!=SaEs82,0)))goto IlVem3;{goto VlZ2k;}IlVem3:;}; -LigBO2=mlK913.V9ej93.hj5891;{if(!((unsigned)32<(unsigned)32&&( -unsigned)LigBO2>=32))goto jUWId1;{goto VlZ2k;}jUWId1:;};c5SHY1= -J7Iki4->Rc7LY4.AC5eU1[LigBO2];HSsG5:{if(!(__builtin_expect(c5SHY1==0, -0)))goto DFI143;{Tjj6h4:j5MYx=AkbwI1(J7Iki4,LigBO2,mlK913);{if(!( -j5MYx))goto BVyzP;kueUq2(J7Iki4,LigBO2,j5MYx);BVyzP:;}goto sPUN83;} -DFI143:;}{if(!(J7Iki4->mNYxW2[LigBO2]))goto z06ol;XHCWr2(J7Iki4, -LigBO2);z06ol:;}esWTk2=J7Iki4->_jfrJ1[LigBO2].pBSeu3;{if(!( -__builtin_expect(esWTk2==0,0)))goto pH2kI3;{{if(!(c5SHY1==J7Iki4-> -PGmy4[LigBO2]->MDSlK2))goto r40Gn;{goto VlZ2k;}r40Gn:;};goto Tjj6h4; -}pH2kI3:;}nusR52=esWTk2->NpyOc1.GEbPX4;{if(!((nusR52==0)))goto wNWnF1 -;{goto Tjj6h4;}wNWnF1:;};{if(!(__builtin_expect(mlK913.V9ej93.nDLY04 -||mlK913.V9ej93.TbIRU3,0)))goto Z72GC2;{j5MYx=0;{if(!(mlK913.V9ej93. -nDLY04))goto Q2vxE1;{j5MYx|=02ul;}Q2vxE1:;}{if(!(mlK913.V9ej93. -TbIRU3))goto cU1Kg2;{j5MYx|=1024ul;}cU1Kg2:;}{if(!(j5MYx))goto fnvKI1 -;kueUq2(J7Iki4,LigBO2,j5MYx);fnvKI1:;}}Z72GC2:;}{if(!( -__builtin_expect(!mlK913.V9ej93.WtICk3,0)))goto Mz7sL2;{goto VlZ2k;} -Mz7sL2:;};{if(!(!nusR52->_8WVQ2.SpbRG4.Yj6gL2.V9ej93.Vmiuc3))goto -ToFWu3;{goto sPUN83;}ToFWu3:;}{if(!(__builtin_expect(nusR52->MDSlK2 -==c5SHY1,0)))goto Xd6Dv1;{nvqbt();{if(!(__builtin_expect(c5SHY1== -J7Iki4->Rc7LY4.AC5eU1[LigBO2],0)))goto ovrUX2;{kvYKl++;goto VlZ2k;} -ovrUX2:;}}Xd6Dv1:;}esWTk2->a02Gz4->j5MYx|=YnF_24(nusR52->_8WVQ2. -SpbRG4.Yj6gL2);esWTk2->a02Gz4->NpyOc1.JI0PC2.n1IfW3+=nusR52->_8WVQ2. -SpbRG4.Yj6gL2.V9ej93.ssopP1;{if(!(nusR52->_8WVQ2.SpbRG4.Yj6gL2.V9ej93 -.oeReu4))goto Jj0711;{esWTk2->a02Gz4->NpyOc1.JI0PC2.bc1R53=1;u0bxl3 -(J7Iki4,LigBO2);{if(!(nusR52->OXCDa4))goto RXfqm;{{if(!(J7Iki4-> -_jfrJ1[LigBO2].pBSeu3!=0&&(J7Iki4->LFVWc4[LigBO2]&32ul)!=0))goto -GRELQ2;{kueUq2(J7Iki4,LigBO2,16384ul);J7Iki4->_jfrJ1[LigBO2].pBSeu3-> -a02Gz4->j5MYx|=16384ul;}GRELQ2:;}}RXfqm:;}}goto jgvi52;Jj0711:;{if(!( -esWTk2->a02Gz4->NpyOc1.JI0PC2.n1IfW3>=esWTk2->a02Gz4->NpyOc1.JI0PC2. -r9yJB))goto VqOPd4;{{if(!((J7Iki4->LFVWc4[LigBO2]&64ul)!=0))goto dXYNX -;{kueUq2(J7Iki4,LigBO2,32768ul);esWTk2->a02Gz4->j5MYx|=32768ul;}dXYNX -:;};u0bxl3(J7Iki4,LigBO2);}goto RYuAa2;VqOPd4:;{esWTk2->NpyOc1. -GEbPX4=esWTk2->NpyOc1.GEbPX4->OXCDa4;{if(!(esWTk2->NpyOc1.GEbPX4==0))goto -iP65M1;{esWTk2->NpyOc1.qXXnD2=0;}iP65M1:;}JbQTW(J7Iki4,nusR52);} -RYuAa2:;}jgvi52:;}sPUN83:;J7Iki4->F46242|=sTQei1[LigBO2];}if(--Vl2C45 -)goto VlZ2k;dUxYz4:;};q0ypK(J7Iki4,-01);}__forceinline static int -Kf8n_4(kWMzp1*J7Iki4,unsigned LigBO2){DCf0T2*esWTk2;QDNE6*a02Gz4; -tJ1Kb4*VN7ed4=0;tJ1Kb4*nusR52;unsigned yBXD22=0;unsigned zyF2Y3=0; -esWTk2=J7Iki4->_jfrJ1[LigBO2].pBSeu3;a02Gz4=J7Iki4->_jfrJ1[LigBO2]. -pBSeu3->a02Gz4;nusR52=esWTk2->NpyOc1.GEbPX4;{if(!(nusR52!=0))goto -EobCl2;{UUEy33:if(!(0x1))goto aD1CI2;{zyF2Y3++;yBXD22+=nusR52-> -_8WVQ2.zACHc3._8WVQ2.V9ej93.Hqc15;{if(!(nusR52->_8WVQ2.zACHc3.eSf3B1 -==J7Iki4->PGmy4[LigBO2]->MDSlK2))goto h3Uf91;goto aD1CI2;h3Uf91:;} -nusR52=osQ5M(J7Iki4,nusR52->_8WVQ2.zACHc3.eSf3B1);}goto UUEy33;aD1CI2 -:;}EobCl2:;};VN7ed4=0;{SZvSz2:if(!(zyF2Y3<010||yBXD22<1024))goto -fBu6j2;{unsigned wBvfo4,dAXWu2;{SJOG34:if(!(esWTk2->NpyOc1.yjr7l4>= -a02Gz4->NpyOc1.JI0PC2.r9yJB))goto zsCVP1;{VN7ed4=esWTk2->NpyOc1. -qXXnD2;esWTk2=esWTk2->NpyOc1.OXCDa4;{if(!(esWTk2==0))goto pNOb85;{ -return 0x1;}pNOb85:;};a02Gz4=esWTk2->a02Gz4;}goto SJOG34;zsCVP1:;} -nusR52=D77H33(J7Iki4,esWTk2);{if(!(__builtin_expect(nusR52==0,0)))goto -rmURl1;{{if(!(esWTk2->NpyOc1.qXXnD2))goto ERKOn1;{}ERKOn1:;}{if(!( -J7Iki4->_jfrJ1[LigBO2].pBSeu3->NpyOc1.GEbPX4==0))goto _9kGv4;{return -0;}goto sZXIr;_9kGv4:;{return 01;}sZXIr:;};}rmURl1:;}dAXWu2=a02Gz4-> -NpyOc1.JI0PC2.r9yJB-esWTk2->NpyOc1.yjr7l4;{if(!(dAXWu2>017774))goto -Drfpj;{if(!(dAXWu2>=017774*2))goto NaRlK3;wBvfo4=017774;goto gSQHi; -NaRlK3:;wBvfo4=dAXWu2/2&~0x3u;gSQHi:;}goto B94ig3;Drfpj:;wBvfo4= -dAXWu2;B94ig3:;};nusR52->_8WVQ2.SpbRG4.ixItX3.T21Gw2=536870912ul|( -wBvfo4<<16u);{dhx3O2:{__asm __volatile(""::);__asm __volatile( -"lock; addl $0,(%%esp)": : :"cc");__asm __volatile(""::);}if(0)goto -dhx3O2;};nusR52->_8WVQ2.zACHc3.agWoi2=a02Gz4->NpyOc1.JI0PC2.Avyuu1+ -esWTk2->NpyOc1.yjr7l4;nusR52->_8WVQ2.zACHc3.eSf3B1=J7Iki4->PGmy4[ -LigBO2]->MDSlK2;esWTk2->NpyOc1.yjr7l4+=wBvfo4;{if(!(esWTk2->NpyOc1. -GEbPX4==0))goto ATPk83;{esWTk2->NpyOc1.GEbPX4=nusR52;}goto CGimB; -ATPk83:;{esWTk2->NpyOc1.qXXnD2->OXCDa4=nusR52;}CGimB:;}{if(!(VN7ed4 -))goto REtHu4;{KAeao3((volatile long* )&VN7ed4->_8WVQ2.zACHc3.eSf3B1 -,nusR52->MDSlK2);nusR52->Lrwko2=(tJ1Kb4* )VN7ed4;}REtHu4:;}VN7ed4= -esWTk2->NpyOc1.qXXnD2=nusR52;yBXD22+=wBvfo4;zyF2Y3++;}goto SZvSz2; -fBu6j2:;};return 01;}__noinline static tJ1Kb4*O6fhT(kWMzp1*J7Iki4, -unsigned LigBO2){{if(!(J7Iki4->_jfrJ1[LigBO2].pBSeu3==0))goto OjNlS3; -{return 0;}OjNlS3:;}{if(!(__builtin_expect(!Kf8n_4(J7Iki4,LigBO2),0)))goto -URQaM4;{J7Iki4->_jfrJ1[LigBO2].pBSeu3->a02Gz4->j5MYx|=0x1ul;{if(!( -J7Iki4->YRHFy->b_7cQ4))goto R1VyQ;{uYS5N2(&J7Iki4->h2LrH3);J7Iki4-> -YRHFy->b_7cQ4(J7Iki4->YRHFy,LigBO2,01ul);h2LrH3(&J7Iki4->h2LrH3);} -R1VyQ:;}u0bxl3(J7Iki4,LigBO2);return 0;}URQaM4:;}return J7Iki4-> -_jfrJ1[LigBO2].pBSeu3->NpyOc1.GEbPX4;}__noinline static void q0ypK( -kWMzp1*J7Iki4,int LigBO2){{if(!(LigBO2>=0))goto JHPwk3;J7Iki4-> -F46242|=sTQei1[LigBO2];goto R154I4;JHPwk3:;LigBO2=0;R154I4:;}{if(!( -J7Iki4->iTAD3==0))goto HvTcD2;{J7Iki4->iTAD3=1;{Ng8yU1:{{if(!(J7Iki4 -->F46242&sTQei1[LigBO2]))goto kkV5s1;{unsigned long c5SHY1;tJ1Kb4* -yzaNE1;c5SHY1=J7Iki4->Rc7LY4.AC5eU1[LigBO2];yzaNE1=O6fhT(J7Iki4, -LigBO2);{if(!(yzaNE1==0))goto Weoum2;{{if(!(c5SHY1!=J7Iki4->PGmy4[ -LigBO2]->MDSlK2))goto FUeC9;{{if(!(c5SHY1))goto zhcEg4;{tJ1Kb4*nusR52 -=osQ5M(J7Iki4,c5SHY1);nusR52->Lrwko2=0;nusR52=osQ5M(J7Iki4,nusR52-> -_8WVQ2.zACHc3.eSf3B1);nusR52->Lrwko2=0;}zhcEg4:;}J7Iki4->PGmy4[LigBO2 -]->_8WVQ2.SpbRG4.Yj6gL2.h80jx1=0;J7Iki4->Rc7LY4.rGUtq3[LigBO2].xzeKf3 -=J7Iki4->PGmy4[LigBO2]->MDSlK2;{if(!(J7Iki4->mNYxW2[LigBO2]))goto -XXDVD;{unsigned QvZLK=Xlqk;{if(!(J7Iki4->Rc7LY4.rGUtq3[LigBO2].xFtBP. -V9ej93.L221t4&1))goto JNeRE;QvZLK=VHvU93;JNeRE:;}GV2iC4(J7Iki4,LigBO2 -,QvZLK);}XXDVD:;}}FUeC9:;}goto LVAok1;}Weoum2:;}J7Iki4->Rc7LY4.rGUtq3 -[LigBO2].xzeKf3=yzaNE1->MDSlK2;{if(!(c5SHY1))goto zLhpa1;{tJ1Kb4* -ZgZeQ, *nusR52;XHCWr2(J7Iki4,LigBO2);{if(!(c5SHY1==yzaNE1->MDSlK2))goto -uVuAT;{goto LVAok1;}uVuAT:;}ZgZeQ=osQ5M(J7Iki4,c5SHY1);{if(!(yzaNE1 -->Lrwko2==ZgZeQ))goto nG3fE3;{{if(!(ZgZeQ->_8WVQ2.zACHc3.eSf3B1== -yzaNE1->MDSlK2))goto cIphR4;{goto LVAok1;}cIphR4:;};yzaNE1->Lrwko2=0 -;}nG3fE3:;}{if(!(yzaNE1->Lrwko2!=0))goto TN3RI3;{tJ1Kb4*nusR52=yzaNE1 -;{mWi371:if(!(nusR52->_8WVQ2.SpbRG4.Yj6gL2.V9ej93.Vmiuc3))goto xBid64 -;{tJ1Kb4*OXCDa4;{if(!(nusR52->_8WVQ2.zACHc3.eSf3B1==ZgZeQ->MDSlK2))goto -Bnj9y2;{goto LVAok1;}Bnj9y2:;}OXCDa4=osQ5M(J7Iki4,nusR52->_8WVQ2. -zACHc3.eSf3B1);{if(!(OXCDa4->Lrwko2!=nusR52))goto thjAR2;{goto xBid64 -;}thjAR2:;};nusR52=OXCDa4;}goto mWi371;xBid64:;}}goto nnNc14;TN3RI3:; -{}nnNc14:;}ZgZeQ->Lrwko2=0;nusR52=osQ5M(J7Iki4,ZgZeQ->_8WVQ2.zACHc3. -eSf3B1);nusR52->Lrwko2=0;}zLhpa1:;}yzaNE1->Lrwko2=yzaNE1;{if(!(J7Iki4 -->mNYxW2[LigBO2]))goto qViB12;{unsigned QvZLK=Xlqk;{if(!(c5SHY1!= -J7Iki4->PGmy4[LigBO2]->MDSlK2&&J7Iki4->Rc7LY4.rGUtq3[LigBO2].xFtBP. -V9ej93.L221t4&01))goto GxG8D3;QvZLK=VHvU93;GxG8D3:;};GV2iC4(J7Iki4, -LigBO2,QvZLK);}qViB12:;}LVAok1:J7Iki4->F46242&=OgFMa4[LigBO2];}kkV5s1 -:;}LigBO2=(LigBO2+1)%32;}if(J7Iki4->F46242)goto Ng8yU1;};J7Iki4-> -iTAD3=0;}HvTcD2:;}}__noinline static void __fastcall EBgum1(kWMzp1* -J7Iki4){int X3V8j4;uYS5N2(&J7Iki4->h2LrH3);X3V8j4=32-1;{m08TL1:{{if( -!(J7Iki4->ZWSDs2.twfX61&sTQei1[X3V8j4]))goto gLNoJ4;{unsigned CE5Mv= -J7Iki4->v1h0c2[X3V8j4];J7Iki4->v1h0c2[X3V8j4]=0;J7Iki4->YRHFy->b_7cQ4 -(J7Iki4->YRHFy,X3V8j4,CE5Mv);}gLNoJ4:;}}if(--X3V8j4>=0)goto m08TL1;}; -h2LrH3(&J7Iki4->h2LrH3);J7Iki4->ZWSDs2.twfX61=0;}static void E2DoN1( -kWMzp1*J7Iki4,void*dYe4I2,void*r49eY4,unsigned long Cga1V,oSdJm*YRHFy -,nEC5K2 Gb8Is4){int X3V8j4;LbJOV lxfqy2;X3V8j4=sizeof( -kWMzp1)/sizeof(unsigned)-0x1;{nBPtF4:{((unsigned* )J7Iki4)[X3V8j4]=0; -}if(--X3V8j4>=0)goto nBPtF4;};J7Iki4->fV7o35=(LbJOV* )dYe4I2;J7Iki4-> -Cga1V=Cga1V;J7Iki4->YRHFy=YRHFy;J7Iki4->YRHFy->b_7cQ4=Gb8Is4;J7Iki4-> -fV7o35->PGh3e4=0;J7Iki4->fV7o35->YOy672=0xFFu;J7Iki4->fV7o35->P3rGX3= -~0u;J7Iki4->fV7o35->Be1a54=~0u;mqe7E2(&lxfqy2);lxfqy2.e6VgP3.V9ej93. -cWwbw|=0;lxfqy2.e6VgP3.V9ej93.aEuur1|=0;J7Iki4->Sc2KG4=((unsigned -long)&(((kWMzp1* )J7Iki4->Cga1V)->Rc7LY4));lxfqy2.uWETN2=((unsigned -long)&(((kWMzp1* )J7Iki4->Cga1V)->Sc2KG4));lxfqy2.JVax01=((unsigned -long)&(((kWMzp1* )J7Iki4->Cga1V)->KMSZr2));lxfqy2.o6C8s2=sizeof( -J7Iki4->KMSZr2)/64-01;lxfqy2._BCMS3=((unsigned long)&(((kWMzp1* )J7Iki4 -->Cga1V)->Ragva2));lxfqy2.ErtY2=sizeof(J7Iki4->Ragva2)/64-1;lxfqy2. -USKhR2=((unsigned long)&(((kWMzp1* )J7Iki4->Cga1V)->n76Wf1));lxfqy2. -r_aQn=sizeof(J7Iki4->n76Wf1)/16-1;lxfqy2.BEfdP=~0u;lxfqy2.YosKg1= -lxfqy2.XPQnv1=((unsigned long)&(((kWMzp1* )J7Iki4->Cga1V)->qs0N02)); -lxfqy2.eg17p3=lxfqy2.GiK3J1=1;J7Iki4->HQW5W1=((unsigned long)&((( -kWMzp1* )J7Iki4->Cga1V)->gCRyd3));lxfqy2.q6r1b3=((unsigned long)&((( -kWMzp1* )J7Iki4->Cga1V)->HQW5W1));lxfqy2.A1jmR4=135006975u;lxfqy2. -CvU4o2=7u;lxfqy2.x2akp.V9ej93.ohoqe3|=0xFFFC;lxfqy2.x2akp.V9ej93. -yA8D32|=4;lxfqy2.x2akp.V9ej93.YcoYR3|=0;lxfqy2.x2akp.V9ej93.kz_Xg4|= -0x4;lxfqy2.x2akp.V9ej93.a17ei2|=0;lxfqy2.x2akp.V9ej93.vkvip|=_ZUUf; -lxfqy2.IBcfz.V9ej93.PmhvS2|=1;lxfqy2.IBcfz.V9ej93.bwTTK3|=0;lxfqy2. -IBcfz.V9ej93.jh_B04|=0;lxfqy2.IBcfz.V9ej93.Aj3Sz3|=0;lxfqy2.x2akp. -V9ej93.I9g9T1&=0;lxfqy2.x2akp.V9ej93.KfMd1|=01;X3V8j4=(sizeof(J7Iki4 -->MEYPf1)/sizeof(J7Iki4->MEYPf1[0]))-01;{Q3_qn3:{J7Iki4->MEYPf1[ -X3V8j4].MDSlK2=((unsigned long)&(((kWMzp1* )J7Iki4->Cga1V)->MEYPf1[ -X3V8j4]));J7Iki4->MEYPf1[X3V8j4].OXCDa4=&J7Iki4->MEYPf1[X3V8j4+0x1];} -if(--X3V8j4>=0)goto Q3_qn3;};J7Iki4->vCi6J4=&J7Iki4->MEYPf1[0];J7Iki4 -->ykU1G2=&J7Iki4->MEYPf1[(sizeof(J7Iki4->MEYPf1)/sizeof(J7Iki4-> -MEYPf1[0]))-1];J7Iki4->ykU1G2->OXCDa4=0;X3V8j4=(sizeof(J7Iki4->ikuha3 -)/sizeof(J7Iki4->ikuha3[0]))-2;{lyIxX:{J7Iki4->ikuha3[X3V8j4].woMv11. -OXCDa4=&J7Iki4->ikuha3[X3V8j4+0x1];}if(--X3V8j4>=0)goto lyIxX;}; -J7Iki4->QLWyF2=&J7Iki4->ikuha3[0];J7Iki4->ikuha3[(sizeof(J7Iki4-> -ikuha3)/sizeof(J7Iki4->ikuha3[0]))-1].woMv11.OXCDa4=0;X3V8j4=32-01;{ -nbL362:{inWLN1*e0wGb1;tJ1Kb4*Ha7yv3;tJ1Kb4*S4Krh1;e0wGb1=&J7Iki4-> -Rc7LY4.rGUtq3[X3V8j4];Ha7yv3=D77H33(J7Iki4,0);GjSDd(J7Iki4,Ha7yv3); -e0wGb1->xzeKf3=Ha7yv3->MDSlK2;S4Krh1=D77H33(J7Iki4,0);K5XcD(J7Iki4, -S4Krh1);e0wGb1->FdyFT1=S4Krh1->MDSlK2;{if(!(X3V8j4>=32&&32<32))goto -F5nxM3;{e0wGb1->xFtBP.V9ej93.LoGHc4|=0xFF;e0wGb1->xFtBP.V9ej93.D1JXh -|=g5zpH4|s9FHT4|EIMqn1;}goto _pIkW2;F5nxM3:;{J7Iki4->PGmy4[X3V8j4]= -Ha7yv3;J7Iki4->RZWDZ2[X3V8j4]=S4Krh1;lN6oU2(e0wGb1);}_pIkW2:;}}if(-- -X3V8j4>=0)goto nbL362;};X3V8j4=32-0x1;{QRWTL:{J7Iki4->Rc7LY4.ZKJvS1[ -X3V8j4].V9ej93.KJYtb1|=01;J7Iki4->Rc7LY4.ZKJvS1[X3V8j4].V9ej93.iGfEm1 -|=1;J7Iki4->Rc7LY4.ZKJvS1[X3V8j4].V9ej93.aUfOe1|=32-1;J7Iki4->Rc7LY4. -ZKJvS1[X3V8j4].V9ej93.dQ5DX|=32-01;}if(--X3V8j4>=0)goto QRWTL;}; -X3V8j4=32-01;{ZLV2r3:{J7Iki4->FmCLm3[X3V8j4].g5AWi=J7Iki4->FmCLm3[ -X3V8j4].lPHda=(unsigned char)(X3V8j4-01);J7Iki4->FmCLm3[X3V8j4]. -GISTQ2=J7Iki4->FmCLm3[X3V8j4].IG7lN3=0xFFu;}if(--X3V8j4>=0)goto ZLV2r3 -;};J7Iki4->FmCLm3[0].g5AWi=J7Iki4->FmCLm3[0].lPHda=0xFFu;J7Iki4-> -FmCLm3[0].GISTQ2=J7Iki4->FmCLm3[0].IG7lN3=0;TFC2u3(J7Iki4);lxfqy2. -PGh3e4=0;lxfqy2.YOy672=0xFFu;lxfqy2.P3rGX3=~0u;lxfqy2.Be1a54=~0u; -YqR582(&lxfqy2,J7Iki4->fV7o35);J7Iki4->fV7o35->Be1a54=~0u;}__noinline -static void rPhOt4(kWMzp1*J7Iki4,DCf0T2*esWTk2){QDNE6*a02Gz4=esWTk2-> -a02Gz4;{if(!(a02Gz4))goto iNjOw4;{a02Gz4->j5MYx|=16ul;{if(!(a02Gz4-> -bPudJ3!=esWTk2))goto YPRI24;{{VZV_c3:{QDNE6*OXCDa4=(QDNE6* )a02Gz4-> -bPudJ3;a02Gz4->bPudJ3=0;_n1S03(J7Iki4,a02Gz4);a02Gz4=OXCDa4;}if( -a02Gz4!=0)goto VZV_c3;};}goto tUjEn4;YPRI24:;{a02Gz4->bPudJ3=0;_n1S03 -(J7Iki4,a02Gz4);}tUjEn4:;}esWTk2->a02Gz4=0;}iNjOw4:;}}static void -c0gFy1(kWMzp1*J7Iki4,int mdbib4){int X3V8j4;inWLN1*e0wGb1;J7Iki4-> -fV7o35->PGh3e4=0;J7Iki4->fV7o35->YOy672=0xFFu;J7Iki4->fV7o35->P3rGX3= -~0u;J7Iki4->fV7o35->Be1a54=~0u;J7Iki4->fV7o35->A1jmR4=135006975u; -J7Iki4->fV7o35->CvU4o2=07u;X3V8j4=32-1;{IN1iH2:{J7Iki4->Rc7LY4.ZKJvS1 -[X3V8j4].V9ej93.KJYtb1=01;J7Iki4->Rc7LY4.ZKJvS1[X3V8j4].V9ej93.iGfEm1 -=01;}if(--X3V8j4>=0)goto IN1iH2;};e0wGb1=&J7Iki4->Rc7LY4.rGUtq3[0]; -X3V8j4=32-0x1;{QPCH7:{lN6oU2(e0wGb1);e0wGb1++;}if(--X3V8j4>=0)goto -QPCH7;};{if(!(!TifAa1(J7Iki4,WdFDP4(0,0,0,0,0,KahAO3))))goto P4DeQ1;{ -;}P4DeQ1:;}{if(!(!TifAa1(J7Iki4,WdFDP4(01,0,0,0,0,KahAO3))))goto -ipuJm1;{}ipuJm1:;}{if(!(!TifAa1(J7Iki4,WdFDP4(0,0,0,0,0,KahAO3))))goto -f3g0r;{}f3g0r:;}X3V8j4=sizeof(J7Iki4->qs0N02)-0x1;{BFjX54:{J7Iki4-> -qs0N02[X3V8j4]=0xCC;}if(--X3V8j4>=0)goto BFjX54;};J7Iki4->fV7o35-> -USKhR2=0+((unsigned long)&(((kWMzp1* )J7Iki4->Cga1V)->qs0N02));J7Iki4 -->fV7o35->JVax01=04+((unsigned long)&(((kWMzp1* )J7Iki4->Cga1V)-> -qs0N02));J7Iki4->fV7o35->_BCMS3=0x8+((unsigned long)&(((kWMzp1* )J7Iki4 -->Cga1V)->qs0N02));J7Iki4->fV7o35->YosKg1=014+((unsigned long)&((( -kWMzp1* )J7Iki4->Cga1V)->qs0N02));J7Iki4->fV7o35->XPQnv1=16+(( -unsigned long)&(((kWMzp1* )J7Iki4->Cga1V)->qs0N02));J7Iki4->fV7o35-> -r_aQn=01;J7Iki4->fV7o35->o6C8s2=1;J7Iki4->fV7o35->ErtY2=1;J7Iki4-> -fV7o35->eg17p3=1;J7Iki4->fV7o35->GiK3J1=1;{if(!(!TifAa1(J7Iki4,WdFDP4 -(0,0,0,0,0,KahAO3))))goto SMwwI;{}SMwwI:;}{if(!(!TifAa1(J7Iki4, -WdFDP4(0,0,0,0,0x1,KahAO3))))goto UCS581;{}UCS581:;}{if(!(!TifAa1( -J7Iki4,WdFDP4(0,0,0,0,0,KahAO3))))goto GjxqC4;{}GjxqC4:;};J7Iki4 -->fV7o35->USKhR2=0xFFFFF000ul;J7Iki4->fV7o35->JVax01=0xFFFFF000ul; -J7Iki4->fV7o35->_BCMS3=0xFFFFF000ul;J7Iki4->fV7o35->YosKg1= -0xFFFFF000ul;J7Iki4->fV7o35->XPQnv1=0xFFFFF000ul;J7Iki4->fV7o35-> -e6VgP3.dZK6h3=0;J7Iki4->fV7o35->y8QlL=0;J7Iki4->fV7o35->x2akp.dZK6h3= -0;J7Iki4->fV7o35->IBcfz.dZK6h3=0;J7Iki4->fV7o35->Be1a54=~0u;{if(!( -mdbib4))goto E831w4;{DCf0T2*esWTk2;esWTk2=J7Iki4->Nlajt1.pBSeu3;{ -yPKAR1:if(!(esWTk2))goto WYUtG1;{rPhOt4(J7Iki4,esWTk2);esWTk2=esWTk2 -->woMv11.OXCDa4;}goto yPKAR1;WYUtG1:;}esWTk2=J7Iki4->CUhqx4.pBSeu3;{ -iNQM3:if(!(esWTk2))goto V6G5Z1;{rPhOt4(J7Iki4,esWTk2);esWTk2=esWTk2-> -woMv11.OXCDa4;}goto iNQM3;V6G5Z1:;}X3V8j4=32-0x1;{XqjdO3:{esWTk2= -J7Iki4->pnKue2[X3V8j4].pBSeu3;{LG1ap2:if(!(esWTk2))goto mAY1g;{rPhOt4 -(J7Iki4,esWTk2);esWTk2=esWTk2->NpyOc1.OXCDa4;}goto LG1ap2;mAY1g:;} -esWTk2=J7Iki4->_jfrJ1[X3V8j4].pBSeu3;{ahkN84:if(!(esWTk2))goto xxSlZ; -{rPhOt4(J7Iki4,esWTk2);esWTk2=esWTk2->NpyOc1.OXCDa4;}goto ahkN84; -xxSlZ:;}}if(--X3V8j4>=0)goto XqjdO3;};}E831w4:;}X3V8j4=sizeof(kWMzp1)/ -sizeof(unsigned)-01;{Ai9235:{((unsigned* )J7Iki4)[X3V8j4]=0;}if(-- -X3V8j4>=0)goto Ai9235;};}static int i_1fA2(kWMzp1*J7Iki4,QDNE6*a02Gz4 -){int VpYRo1=0;DCf0T2*esWTk2;a02Gz4->j5MYx=0;a02Gz4->bPudJ3=0;{if(!( -a02Gz4->JbjvO4==0||(a02Gz4->QvZLK&((01u|2u|010u|16384u|32768u)|(16u| -32u|128u)|(256u|512u|1024u|2048u|8192u|4096u)|64u))==0||(a02Gz4-> -QvZLK&~((0x1u|02u|0x8u|16384u|32768u)|(16u|32u|128u)|(256u|512u|1024u -|2048u|8192u|4096u)|64u))!=0))goto vrimc2;return 0;vrimc2:;}{if(!( -a02Gz4->QvZLK&8u))goto UvPkN4;{VpYRo1++;}UvPkN4:;}{if(!(a02Gz4-> -QvZLK&128u))goto FfRTQ3;{VpYRo1++;}FfRTQ3:;}{if(!(a02Gz4->QvZLK&256u -))goto Qzf37;VpYRo1++;Qzf37:;}{if(!(a02Gz4->QvZLK&512u))goto OEjBA3; -VpYRo1++;OEjBA3:;}{if(!(a02Gz4->QvZLK&1024u))goto imkjX3;VpYRo1++; -imkjX3:;}{if(!(a02Gz4->QvZLK&2048u))goto wHwkE;VpYRo1++;wHwkE:;}{if(! -(a02Gz4->QvZLK&4096u))goto CrKFV;VpYRo1++;CrKFV:;}{if(!(64u&&(a02Gz4 -->QvZLK&64u)!=0))goto wlvGb2;VpYRo1++;wlvGb2:;}{if(!(VpYRo1>1))goto -x9P7L4;{return 0;}x9P7L4:;}esWTk2=ITvPG2(J7Iki4);{if(!(esWTk2==0))goto -QFu922;{a02Gz4->j5MYx|=01ul;return 0;}QFu922:;}{if(!(!WQjAp4(J7Iki4, -a02Gz4,esWTk2)))goto vhBTJ4;{G7h9S3(J7Iki4,esWTk2);return 0;}vhBTJ4:; -}{if(!((a02Gz4->QvZLK&128u)!=0&&(a02Gz4->QvZLK&8u)!=0))goto N5ND15;{ -G7h9S3(J7Iki4,esWTk2);return 0;}N5ND15:;}{if(!((a02Gz4->QvZLK&(256u|( -0x1u|02u|0x8u|16384u|32768u)|(16u|32u|128u)|2048u))!=0&&a02Gz4-> -NpyOc1.NNh015.LigBO2>=32))goto AIX_u1;{G7h9S3(J7Iki4,esWTk2);return 0 -;}AIX_u1:;}{if(!(a02Gz4->QvZLK&0x8u))goto DR1bx1;{a02Gz4->NpyOc1. -uwYQG1.BLFVJ4=0;{if(!(a02Gz4->NpyOc1.uwYQG1.Avyuu1==0))goto jew7t;{ -G7h9S3(J7Iki4,esWTk2);return 0;}jew7t:;}{if(!(a02Gz4->NpyOc1.uwYQG1. -Fcabx==0&&(a02Gz4->QvZLK&16384u)==0))goto tuk1G3;{G7h9S3(J7Iki4, -esWTk2);return 0;}tuk1G3:;}}DR1bx1:;}{if(!(a02Gz4->QvZLK&128u))goto -Z1SZQ;{a02Gz4->NpyOc1.JI0PC2.n1IfW3=0;{if(!(a02Gz4->NpyOc1.JI0PC2. -r9yJB<0x4||a02Gz4->NpyOc1.JI0PC2.r9yJB%0x4!=0||a02Gz4->NpyOc1.JI0PC2. -Avyuu1==0||a02Gz4->NpyOc1.JI0PC2.Avyuu1%04!=0))goto eDFcP3;{G7h9S3( -J7Iki4,esWTk2);return 0;}eDFcP3:;}}Z1SZQ:;}esWTk2->a02Gz4=a02Gz4; -a02Gz4->bPudJ3=esWTk2;{(esWTk2)->woMv11.OXCDa4=0;(esWTk2)->woMv11. -neQ2f1=J7Iki4->CUhqx4.WHQ_F1;{if(!(J7Iki4->CUhqx4.WHQ_F1))goto w4x6p4 -;(J7Iki4->CUhqx4.WHQ_F1)->woMv11.OXCDa4=esWTk2;goto PdKuJ;w4x6p4:; -J7Iki4->CUhqx4.pBSeu3=esWTk2;PdKuJ:;}J7Iki4->CUhqx4.WHQ_F1=esWTk2; -};{if(!(J7Iki4->DL14H3==0))goto OC0wH1;YBrPF4(J7Iki4);OC0wH1:;}{if(!( -J7Iki4->jXwP42==0))goto FMXMT1;yoLEn3(J7Iki4);FMXMT1:;}return 0x1;} -static int QrVoB3(kWMzp1*J7Iki4,QDNE6*a02Gz4,int pTM6S){DCf0T2*esWTk2 -;esWTk2=(DCf0T2* )a02Gz4->bPudJ3;{if(!(!BTL3a(esWTk2,&J7Iki4->ikuha3 -[0],&J7Iki4->ikuha3[(sizeof(J7Iki4->ikuha3)/sizeof(J7Iki4->ikuha3[0]))] -)))goto CVByc4;{return 0;}CVByc4:;};{if(!(esWTk2->a02Gz4!=a02Gz4))goto -z6j0y3;{return 0;}z6j0y3:;}{if(!(esWTk2->Xx6Ti3==0))goto la1Uw1;{ -unsigned X3V8j4;{X3V8j4=0;sZ3K45:if(!(X3V8j4<32))goto cu7WU1;goto -RXkRU4;B2kwf3:X3V8j4++;goto sZ3K45;RXkRU4:{}goto B2kwf3;cu7WU1:;}; -esWTk2->a02Gz4=0;{{if(!((esWTk2)->woMv11.neQ2f1))goto M8iX62;( -esWTk2)->woMv11.neQ2f1->woMv11.OXCDa4=(esWTk2)->woMv11.OXCDa4;goto -q1RMD2;M8iX62:;{J7Iki4->CUhqx4.pBSeu3=(esWTk2)->woMv11.OXCDa4;} -q1RMD2:;}{if(!((esWTk2)->woMv11.OXCDa4))goto WyCc21;(esWTk2)->woMv11. -OXCDa4->woMv11.neQ2f1=(esWTk2)->woMv11.neQ2f1;goto lMy6s;WyCc21:;{ -J7Iki4->CUhqx4.WHQ_F1=(esWTk2)->woMv11.neQ2f1;}lMy6s:;};};G7h9S3( -J7Iki4,esWTk2);{if(!(J7Iki4->DL14H3==0))goto JBhqV2;YBrPF4(J7Iki4); -JBhqV2:;};a02Gz4->j5MYx|=16ul;a02Gz4->bPudJ3=0;return 01;}la1Uw1:;};{ -if(!(!pTM6S&&(esWTk2->NpyOc1.yjr7l4!=0||esWTk2->NpyOc1.yjr7l4!=0)))goto -e71Qn1;{return 0;}e71Qn1:;}{if(!(cFFDu1(&J7Iki4->Nlajt1,esWTk2)|| -J7Iki4->Nlajt1.pBSeu3==esWTk2))goto VMudP1;{{if(!(!pTM6S))goto uUOUZ4 -;{return 0;}uUOUZ4:;}}VMudP1:;}a02Gz4->j5MYx|=16ul;{if(!(a02Gz4-> -NpyOc1.NNh015.LigBO2<32))goto j6irJ2;{{if(!(ppetC1(&J7Iki4->_jfrJ1[ -a02Gz4->NpyOc1.NNh015.LigBO2],esWTk2)))goto TG9c75;{esWTk2->Xx6Ti3-- -;{if(!(esWTk2->NpyOc1.GEbPX4))goto x9Kpa;{tJ1Kb4*tfu023;tfu023= -osQ5M(J7Iki4,esWTk2->NpyOc1.qXXnD2->_8WVQ2.zACHc3.eSf3B1);{if(!( -esWTk2->NpyOc1.GEbPX4->Lrwko2))goto icC2Q1;{tJ1Kb4*o0Fou4=esWTk2-> -NpyOc1.GEbPX4->Lrwko2;o0Fou4->_8WVQ2.zACHc3.eSf3B1=tfu023->MDSlK2;{ -hPE_d2:{__asm __volatile(""::);__asm __volatile( -"lock; addl $0,(%%esp)": : :"cc");__asm __volatile(""::);}if(0)goto -hPE_d2;};tfu023->Lrwko2=o0Fou4;}goto ldfza;icC2Q1:;tfu023->Lrwko2=0; -ldfza:;}uKg3m2(J7Iki4,esWTk2);}goto Dz6V81;x9Kpa:;{}Dz6V81:;}{{if -(!((esWTk2)->NpyOc1.neQ2f1))goto nR9ID4;(esWTk2)->NpyOc1.neQ2f1-> -NpyOc1.OXCDa4=(esWTk2)->NpyOc1.OXCDa4;goto AFhrh2;nR9ID4:;{J7Iki4-> -_jfrJ1[a02Gz4->NpyOc1.NNh015.LigBO2].pBSeu3=(esWTk2)->NpyOc1.OXCDa4;} -AFhrh2:;}{if(!((esWTk2)->NpyOc1.OXCDa4))goto gU0RO;(esWTk2)->NpyOc1. -OXCDa4->NpyOc1.neQ2f1=(esWTk2)->NpyOc1.neQ2f1;goto CTqht4;gU0RO:;{ -J7Iki4->_jfrJ1[a02Gz4->NpyOc1.NNh015.LigBO2].WHQ_F1=(esWTk2)->NpyOc1. -neQ2f1;}CTqht4:;};};q0ypK(J7Iki4,a02Gz4->NpyOc1.NNh015.LigBO2);} -TG9c75:;}{if(!(ppetC1(&J7Iki4->pnKue2[a02Gz4->NpyOc1.NNh015.LigBO2], -esWTk2)))goto rSBLa2;{esWTk2->Xx6Ti3--;{if(!(esWTk2->NpyOc1.GEbPX4))goto -KhdVP3;{tJ1Kb4*tfu023=0;tJ1Kb4*o0Fou4=esWTk2->NpyOc1.GEbPX4->Lrwko2; -;{if(!(!esWTk2->NpyOc1.qXXnD2->_8WVQ2.fbiOR4._8WVQ2.V9ej93.DEVTm4))goto -wwmRl3;{tfu023=osQ5M(J7Iki4,esWTk2->NpyOc1.qXXnD2->_8WVQ2.zACHc3. -eSf3B1);{if(!(o0Fou4))goto QlpOn3;{o0Fou4->_8WVQ2.zACHc3.eSf3B1= -tfu023->MDSlK2;{_fJ2B4:{__asm __volatile(""::);__asm __volatile( -"lock; addl $0,(%%esp)": : :"cc");__asm __volatile(""::);}if(0)goto -_fJ2B4;};tfu023->Lrwko2=o0Fou4;}goto Ltkwl1;QlpOn3:;tfu023->Lrwko2=0; -Ltkwl1:;}}goto GNmUv4;wwmRl3:;{{if(!(o0Fou4))goto Sg7Ii;{o0Fou4-> -_8WVQ2.fbiOR4._8WVQ2.V9ej93.DEVTm4|=0x1;fOVyT4(J7Iki4,a02Gz4->NpyOc1. -NNh015.LigBO2,o0Fou4);}Sg7Ii:;}}GNmUv4:;}LjWek1(J7Iki4,esWTk2,a02Gz4 -->NpyOc1.NNh015.LigBO2);}goto URiEj;KhdVP3:;{}URiEj:;}{{if(!(( -esWTk2)->NpyOc1.neQ2f1))goto MpGe72;(esWTk2)->NpyOc1.neQ2f1->NpyOc1. -OXCDa4=(esWTk2)->NpyOc1.OXCDa4;goto zDomy3;MpGe72:;{J7Iki4->pnKue2[ -a02Gz4->NpyOc1.NNh015.LigBO2].pBSeu3=(esWTk2)->NpyOc1.OXCDa4;}zDomy3: -;}{if(!((esWTk2)->NpyOc1.OXCDa4))goto CjH_c4;(esWTk2)->NpyOc1.OXCDa4 -->NpyOc1.neQ2f1=(esWTk2)->NpyOc1.neQ2f1;goto oVe401;CjH_c4:;{J7Iki4 -->pnKue2[a02Gz4->NpyOc1.NNh015.LigBO2].WHQ_F1=(esWTk2)->NpyOc1.neQ2f1 -;}oVe401:;};};gYC_T3(J7Iki4,a02Gz4->NpyOc1.NNh015.LigBO2);}rSBLa2:; -}{if(!(J7Iki4->eWAnF[a02Gz4->NpyOc1.NNh015.LigBO2]))goto QGTZB3;{ -esWTk2->a02Gz4=0;{if(!(esWTk2->Xx6Ti3==0))goto G3EMd;G7h9S3(J7Iki4, -esWTk2);G3EMd:;}a02Gz4->bPudJ3=J7Iki4->eWAnF[a02Gz4->NpyOc1.NNh015. -LigBO2]->a02Gz4;J7Iki4->eWAnF[a02Gz4->NpyOc1.NNh015.LigBO2]->a02Gz4= -a02Gz4;return 0;}QGTZB3:;}}j6irJ2:;}esWTk2->a02Gz4=0;{if(!(esWTk2-> -Xx6Ti3==0))goto uIVHm2;G7h9S3(J7Iki4,esWTk2);uIVHm2:;};a02Gz4->bPudJ3 -=0;{if(!(J7Iki4->jXwP42==0))goto tLnQG3;yoLEn3(J7Iki4);tLnQG3:;} -return 0x1;}static int nIaSt(kWMzp1*J7Iki4){return J7Iki4->fV7o35-> -Be1a54!=0;}static int yoLEn3(kWMzp1*J7Iki4){unsigned bHAl_;unsigned -long Os1bA3;Os1bA3=J7Iki4->fV7o35->Be1a54;{if(!(Os1bA3==0))goto -DBLAx1;return 0;DBLAx1:;}bHAl_=0;J7Iki4->jXwP42++;MiEVK2:{IZIt42:{ -J7Iki4->fV7o35->Be1a54=Os1bA3&~lPIbL4;{if(!(Os1bA3&(Sptqu|r3CcP2| -gQf6j1)))goto AO8s83;{J7Iki4->fV7o35->y8QlL=0;J7Iki4->fV7o35->Be1a54= -gQf6j1|Sptqu|r3CcP2;dwKme1(J7Iki4,Os1bA3);}goto xHlfL4;AO8s83:;{if(! -(__builtin_expect((J7Iki4->uyKJn2==csvRg2)&&(J7Iki4->fV7o35->y8QlL&01 -)==0,0)))goto KuEgF;{nvqbt();{if(!((J7Iki4->fV7o35->Be1a54&(Sptqu| -r3CcP2))==0))goto H6z612;{J7Iki4->fV7o35->y8QlL=0;J7Iki4->fV7o35-> -Be1a54=gQf6j1|Sptqu|r3CcP2;dwKme1(J7Iki4,r3CcP2);}H6z612:;}}KuEgF:;} -xHlfL4:;}{if(!(Os1bA3&(C10QV|w9B8P4)))goto OVovS3;{{if(!( -__builtin_expect(Os1bA3&w9B8P4,0)))goto F09LQ3;{{if(!(J7Iki4->YRHFy -->b_7cQ4))goto _tFeK1;{uYS5N2(&J7Iki4->h2LrH3);J7Iki4->YRHFy->b_7cQ4 -(J7Iki4->YRHFy,-01,65536ul);h2LrH3(&J7Iki4->h2LrH3);}_tFeK1:;}} -F09LQ3:;}UK8sN4(J7Iki4);}OVovS3:;}{if(!(Os1bA3&(j0Yx9|kCJ6a1)))goto -SX_EH4;{{if(!(__builtin_expect(Os1bA3&kCJ6a1,0)))goto UIlCN4;{{if(! -(J7Iki4->YRHFy->b_7cQ4))goto Nshhy1;{uYS5N2(&J7Iki4->h2LrH3);J7Iki4 -->YRHFy->b_7cQ4(J7Iki4->YRHFy,-1,131072ul);h2LrH3(&J7Iki4->h2LrH3);} -Nshhy1:;}}UIlCN4:;}jK7VQ3(J7Iki4);}SX_EH4:;}{if(!(Os1bA3&lPIbL4))goto -kRvRA;{qWaP5(J7Iki4);}kRvRA:;}{if(!(__builtin_expect(++bHAl_>01750,0)))goto -ebF2N1;{{if(!(J7Iki4->YRHFy->b_7cQ4))goto G3qOC4;{uYS5N2(&J7Iki4-> -h2LrH3);J7Iki4->YRHFy->b_7cQ4(J7Iki4->YRHFy,-0x1,1048576ul);h2LrH3(& -J7Iki4->h2LrH3);}G3qOC4:;}goto NSHM15;}ebF2N1:;}Os1bA3=J7Iki4-> -fV7o35->Be1a54;}if(Os1bA3)goto IZIt42;NSHM15:;};{if(!(J7Iki4->F46242))goto -iq6n4;q0ypK(J7Iki4,-0x1);iq6n4:;}{if(!(J7Iki4->a6vkI2))goto WWrjG1; -gYC_T3(J7Iki4,-01);WWrjG1:;}{if(!(J7Iki4->ZWSDs2.twfX61&&J7Iki4-> -YRHFy->b_7cQ4))goto zv9HY3;EBgum1(J7Iki4);zv9HY3:;}Os1bA3=J7Iki4-> -fV7o35->Be1a54;{if(!(Os1bA3&&bHAl_<01750))goto msB823;goto MiEVK2; -msB823:;}J7Iki4->jXwP42--;return 0x1;}__forceinline static unsigned -RtiEy4(volatile unsigned long*RdZoN,unsigned kKiv65){unsigned I3ipm3, -Kt5Iv1;I3ipm3=kKiv65&0x1f;((RdZoN)[0])=I3ipm3|0xE0;((RdZoN)[-01])= -0377;((RdZoN)[0])=I3ipm3|0140;((RdZoN)[-0x1])=0377;Kt5Iv1=(((volatile -unsigned char* )(RdZoN))[1]);((RdZoN)[0])=I3ipm3|0xE0;((RdZoN)[-1])= -224;return Kt5Iv1;}__forceinline static void AUUSL3(volatile unsigned -long*RdZoN,unsigned kKiv65,unsigned vgKFx2){unsigned f8S2i1;f8S2i1= -(kKiv65&31)|(vgKFx2<<0x8);((RdZoN)[0])=f8S2i1|0xE0;((RdZoN)[-01])= -0xFFFF;((RdZoN)[0])=f8S2i1|0xA0;((RdZoN)[-1])=0xFFFF;((RdZoN)[0])= -f8S2i1|0xE0;((RdZoN)[-1])=224;}__forceinline static unsigned Ei5yG( -unsigned Uya4h){{if(!(Uya4h==0))goto SwvPI;return 0x1;SwvPI:;}{if(!( -Uya4h==1))goto flumr;return 02;flumr:;}{if(!(Uya4h==2))goto cEz3h2; -return 3;cEz3h2:;};return 0xFFu;}__forceinline static void Ae0Cg2( -unsigned Uya4h,volatile unsigned long*RdZoN,unsigned kKiv65,unsigned -vgKFx2){AUUSL3(RdZoN,Ei5yG(Uya4h),kKiv65);AUUSL3(RdZoN,5,vgKFx2);} -__forceinline static unsigned _ozJC4(unsigned Uya4h,volatile unsigned -long*RdZoN,unsigned kKiv65){AUUSL3(RdZoN,Ei5yG(Uya4h),kKiv65);return -RtiEy4(RdZoN,05);}__forceinline static unsigned lmuOy2(unsigned Uya4h -,volatile unsigned long*RdZoN,unsigned kKiv65){unsigned Kt5Iv1; -AUUSL3(RdZoN,Ei5yG(Uya4h),kKiv65);AUUSL3(RdZoN,0x5,0xFF);AUUSL3(RdZoN -,Ei5yG(Uya4h),kKiv65);Kt5Iv1=RtiEy4(RdZoN,0x5);AUUSL3(RdZoN,Ei5yG( -Uya4h),kKiv65);AUUSL3(RdZoN,0x5,Kt5Iv1);return Kt5Iv1;}__noinline -static void __fastcall BucKo(volatile unsigned long*RdZoN,unsigned -kKiv65,unsigned vgKFx2){Ae0Cg2(0,RdZoN,kKiv65,vgKFx2);}__noinline -static unsigned __fastcall SlE234(volatile unsigned long*RdZoN, -unsigned kKiv65){return _ozJC4(0,RdZoN,kKiv65);}__noinline static -unsigned __fastcall dMM0e1(volatile unsigned long*RdZoN,unsigned -kKiv65){return lmuOy2(0,RdZoN,kKiv65);}__noinline static void -__fastcall HcALQ1(volatile unsigned long*RdZoN,unsigned kKiv65, -unsigned long vgKFx2){Ae0Cg2(0,RdZoN,kKiv65+0,vgKFx2&0xFFu);Ae0Cg2(0, -RdZoN,kKiv65+1,(vgKFx2>>010)&0xFFu);Ae0Cg2(0,RdZoN,kKiv65+02,(vgKFx2 ->>16)&0xFFu);Ae0Cg2(0,RdZoN,kKiv65+3,vgKFx2>>24);}__noinline static -unsigned long __fastcall BLq4p(volatile unsigned long*RdZoN,unsigned -kKiv65){unsigned long Kt5Iv1=_ozJC4(0,RdZoN,kKiv65+0);Kt5Iv1+=_ozJC4( -0,RdZoN,kKiv65+1)<<8;Kt5Iv1+=_ozJC4(0,RdZoN,kKiv65+0x2)<<16;Kt5Iv1+= -_ozJC4(0,RdZoN,kKiv65+3)<<24;return Kt5Iv1;}__noinline static void -__fastcall s3sCI1(volatile unsigned long*RdZoN,unsigned kKiv65, -unsigned vgKFx2){Ae0Cg2(01,RdZoN,kKiv65,vgKFx2);}__noinline static -unsigned __fastcall fFvjz3(volatile unsigned long*RdZoN,unsigned -kKiv65){return _ozJC4(01,RdZoN,kKiv65);}__noinline static unsigned -__fastcall NHDsK3(volatile unsigned long*RdZoN,unsigned kKiv65){ -return lmuOy2(01,RdZoN,kKiv65);}__noinline static void __fastcall -Rqv1w3(volatile unsigned long*RdZoN,unsigned kKiv65,unsigned long -vgKFx2){Ae0Cg2(0x1,RdZoN,kKiv65+0,vgKFx2&0xFFu);Ae0Cg2(01,RdZoN, -kKiv65+01,(vgKFx2>>0x8)&0xFFu);Ae0Cg2(1,RdZoN,kKiv65+02,(vgKFx2>>16)& -0xFFu);Ae0Cg2(0x1,RdZoN,kKiv65+0x3,vgKFx2>>24);}__noinline static -unsigned long __fastcall sl0aO1(volatile unsigned long*RdZoN,unsigned -kKiv65){unsigned long Kt5Iv1=_ozJC4(1,RdZoN,kKiv65+0);Kt5Iv1+=_ozJC4( -01,RdZoN,kKiv65+0x1)<<8;Kt5Iv1+=_ozJC4(01,RdZoN,kKiv65+2)<<16;Kt5Iv1 -+=_ozJC4(01,RdZoN,kKiv65+0x3)<<0x18;return Kt5Iv1;}__noinline static -void __fastcall IoSy32(kWMzp1*J7Iki4,unsigned kKiv65,unsigned vgKFx2){ -volatile unsigned long*RdZoN;RdZoN=&J7Iki4->fV7o35->UyRVB4; -AUUSL3(RdZoN,4,kKiv65);AUUSL3(RdZoN,5,vgKFx2);}__noinline static void -__fastcall B1Wc_1(kWMzp1*J7Iki4){unsigned X3V8j4=0;{XJ0a1:{IoSy32( -J7Iki4,X3V8j4,(X3V8j4==24)?0x1:0);}if(++X3V8j4<256)goto XJ0a1;};} -__noinline static unsigned long __fastcall xjK0y2(volatile unsigned -long*RdZoN){unsigned long qwUGv3;AUUSL3(RdZoN,013,0);qwUGv3=RtiEy4( -RdZoN,013);qwUGv3=(qwUGv3<<010)|RtiEy4(RdZoN,013);qwUGv3=(qwUGv3<<8)| -RtiEy4(RdZoN,013);qwUGv3=(qwUGv3<<010)|RtiEy4(RdZoN,013);return qwUGv3 -;}__noinline static void LzuvP2(volatile unsigned long*RdZoN,unsigned -long TrF875){AUUSL3(RdZoN,15,(TrF875>>24)&0xFFu);AUUSL3(RdZoN,14,( -TrF875>>16)&0xFFu);AUUSL3(RdZoN,015,(TrF875>>0x8)&0xFFu);AUUSL3(RdZoN -,12,TrF875&0xFFu);}__forceinline static int Mrgr62(unsigned gMQg82, -unsigned long _xQyf,j0BDS4*Z0e1C2){Z0e1C2->PBtXm1=0;Z0e1C2->AuCs73=32 -;Z0e1C2->W4f921=128|0x4;Z0e1C2->kgEeY3=02|(0?128:0);Z0e1C2->E7Ual2=0; -{if(!(!(gMQg82&16777216ul)))goto wadcP4;Z0e1C2->E7Ual2|=64;wadcP4:;}{ -if(!(!(gMQg82&33554432ul)))goto PAEZQ1;Z0e1C2->E7Ual2|=04;goto uhO4M2 -;PAEZQ1:;{Z0e1C2->W4f921|=64;Z0e1C2->kgEeY3|=0x1;}uhO4M2:;}Z0e1C2-> -x2RgK4=0;{if(!(gMQg82&67108864ul))goto Qnmal4;Z0e1C2->x2RgK4=8|0x4; -Qnmal4:;}Z0e1C2->_Oqi51=0;Z0e1C2->TIQMZ1=0;Z0e1C2->aW7n84=0;Z0e1C2-> -JhCor3=0;Z0e1C2->VPJzO1=0;Z0e1C2->DDAs81=0;{if(!((gMQg82&65536ul)&&( -gMQg82&131072ul)))goto jLuYc;{return 0;}jLuYc:;}{if(!((gMQg82&( -65536ul|131072ul))&&(gMQg82&134217728ul)))goto tEpJn4;{return 0;} -tEpJn4:;}switch(gMQg82&017ul){case(0ul<<0):Z0e1C2->x2RgK4=0x1;Z0e1C2 -->Q1iXV3=0;Z0e1C2->DvwSz1=0;return 0x1;case(0x3ul<<0):break;case(1ul -<<0):Z0e1C2->_Oqi51|=64;Z0e1C2->x2RgK4|=8;break;case(2ul<<0):Z0e1C2-> -_Oqi51|=128;return 01;case(0x4ul<<0):Z0e1C2->PBtXm1|=16;break;default -:;return 0;}Z0e1C2->Q1iXV3=(0x1?16:0)|8|2|0x1;Z0e1C2->DvwSz1=16|4|(0? -1:0);{if(!(gMQg82&65536ul))goto orhdS1;{Z0e1C2->DvwSz1|=64|8;Z0e1C2-> -PBtXm1|=010;}orhdS1:;}{if(!(gMQg82&131072ul))goto DkFMT2;{Z0e1C2-> -DvwSz1|=32|02;Z0e1C2->VPJzO1=0xFF;}DkFMT2:;}{if(!(gMQg82&32768ul))goto -gDrf92;Z0e1C2->DvwSz1|=32|128;gDrf92:;}{if(!(gMQg82&256ul))goto BO0Kp -;Z0e1C2->DDAs81=112;BO0Kp:;}{if(!(gMQg82&512ul))goto Bopp64;Z0e1C2-> -x2RgK4|=16;Bopp64:;}{if(!((gMQg82&240ul)>(05ul<<4)))goto kRds75;{ -Z0e1C2->AuCs73|=04;{if(!(gMQg82&8388608ul))goto deB5j3;{return 0;} -deB5j3:;}switch(gMQg82&240ul){case(06ul<<4):{if(!(gMQg82&(16384ul| -4096ul|1048576ul|4194304ul)))goto UhET81;{return 0;}UhET81:;}Z0e1C2 -->E7Ual2|=010;Z0e1C2->Q1iXV3|=04;break;case(07ul<<0x4):Z0e1C2->PBtXm1 -|=32;Z0e1C2->Q1iXV3|=04|128|64|32;break;case(0x8ul<<0x4):Z0e1C2-> -Q1iXV3|=0x4|128|64|32;break;case(011ul<<4):Z0e1C2->kgEeY3|=04|64; -Z0e1C2->Q1iXV3|=04|128|64|32;break;default:;return 0;}Z0e1C2->W4f921 -|=010;{if(!((gMQg82&524288ul)==0))goto MnOkL2;Z0e1C2->W4f921|=16; -MnOkL2:;}Z0e1C2->VPJzO1&=~32;{if(!(gMQg82&268435456ul))goto KUvUb1;{ -Z0e1C2->E7Ual2|=1;{if(!(gMQg82&134217728ul))goto j7dnD4;Z0e1C2-> -TIQMZ1|=02;j7dnD4:;}}KUvUb1:;}{if(!(gMQg82&134217728ul))goto ydhBR1;{ -Z0e1C2->E7Ual2|=16;Z0e1C2->VPJzO1&=~0xC0;}ydhBR1:;}{if(!(gMQg82& -4096ul))goto _crCW2;Z0e1C2->W4f921|=0x1;_crCW2:;}{if(!(gMQg82&1024ul))goto -FS3704;Z0e1C2->PBtXm1|=64;goto t11ih;FS3704:;{if(!((gMQg82&2048ul)==0 -))goto nOhE62;Z0e1C2->PBtXm1|=0x8;nOhE62:;}t11ih:;}{if(!(gMQg82& -16384ul))goto VyO7q2;Z0e1C2->PBtXm1|=0x4;VyO7q2:;}}goto NXEIY1;kRds75 -:;{unsigned Z6YCM=0;unsigned long iTzqw4;{if(!(gMQg82&((268435456ul| -134217728ul)|16384ul|4096ul|32768ul|65536ul|131072ul|262144ul| -524288ul|1048576ul|2097152ul|4194304ul)))goto fNTIT4;{return 0;} -fNTIT4:;}Z0e1C2->AuCs73|=0x2;Z0e1C2->PBtXm1|=64;Z0e1C2->E7Ual2|=8; -Z0e1C2->aW7n84=_xQyf;{if(!((gMQg82&0360ul)==(5ul<<0x4)))goto vzO1f3; -Z0e1C2->aW7n84=0xFFFFFFFFul;vzO1f3:;}Z6YCM=0;iTzqw4=1ul<<037;{xNvbw1: -{{if(!(Z0e1C2->aW7n84&iTzqw4))goto aFpFx4;Z6YCM++;aFpFx4:;}}if(iTzqw4 ->>=1)goto xNvbw1;};switch(gMQg82&0360ul){case(0ul<<4):{if(!(Z6YCM!= -0x1))goto k2iza1;{return 0;}k2iza1:;}Z0e1C2->JhCor3=026;break;case( -1ul<<04):{if(!(Z6YCM!=0x2))goto XJ98_4;{return 0;}XJ98_4:;}Z0e1C2-> -JhCor3=21;break;case(0x2ul<<4):{if(!(Z6YCM!=0x4))goto wavCE;{return 0 -;}wavCE:;}Z0e1C2->JhCor3=0x14;break;case(0x3ul<<4):{if(!(Z6YCM!=010))goto -iZnUX3;{return 0;}iZnUX3:;}Z0e1C2->JhCor3=0x13;break;case(0x4ul<<4): -{if(!(Z6YCM!=16))goto Z2OSv2;{return 0;}Z2OSv2:;}Z0e1C2->JhCor3=0x12 -;break;case(5ul<<0x4):{if(!(Z6YCM!=32))goto C8h0B;{return 0;}C8h0B:; -}Z0e1C2->JhCor3=021;break;default:;return 0;}{if(!(gMQg82&8388608ul))goto -it1GH;Z0e1C2->JhCor3|=010;it1GH:;}}NXEIY1:;};return 01;}__forceinline -static int HAuYS2(unsigned UYtd71,iOPn3*xb5nq1){unsigned N4LX53=( -xb5nq1->fVNme-xb5nq1->ELKAp3)%256;return((UYtd71==03u||UYtd71==1u)&& -N4LX53<=xb5nq1->EbhBp3)||((UYtd71==2u||UYtd71==0u)&&N4LX53>=xb5nq1-> -EbhBp3);}__noinline static void N63wg2(iOPn3*xb5nq1,kWMzp1*J7Iki4,int -b9Zs_){xb5nq1->PnawH[0]++;J7Iki4->YRHFy->c7Vnu1++;{if(!(J7Iki4->YRHFy -->b_7cQ4))goto FsUk9;{uYS5N2(&J7Iki4->h2LrH3);J7Iki4->YRHFy->b_7cQ4( -J7Iki4->YRHFy,b9Zs_,2097152ul);h2LrH3(&J7Iki4->h2LrH3);}FsUk9:;}} -__forceinline static void vUYb92(unsigned UYtd71,unsigned vLSs_1, -iOPn3*xb5nq1,kWMzp1*J7Iki4,int b9Zs_){unsigned long lpVV64;volatile -unsigned long*RdZoN;RdZoN=&J7Iki4->fV7o35->UyRVB4;lpVV64=xjK0y2(RdZoN -);{if(!(xb5nq1->KQKqV1))goto qIB2B3;{{if(!(lpVV64-xb5nq1->KQKqV1> -vLSs_1))goto MBzBE3;N63wg2(xb5nq1,J7Iki4,b9Zs_);MBzBE3:;}}qIB2B3:;} -xb5nq1->KQKqV1=lpVV64;{if(!(xb5nq1->GhexM2&&HAuYS2(UYtd71,xb5nq1)&& -xb5nq1->IkJYR1))goto c1GT73;{unsigned N4LX53=(xb5nq1->fVNme-xb5nq1-> -ELKAp3)%256;xb5nq1->GhexM2=0;uYS5N2(&J7Iki4->h2LrH3);xb5nq1->IkJYR1( -J7Iki4->YRHFy,b9Zs_,UYtd71,(UYtd71==0x3u||UYtd71==0x1u)?256-N4LX53: -N4LX53);h2LrH3(&J7Iki4->h2LrH3);}c1GT73:;}}__forceinline static void -r_RoY4(unsigned UYtd71,iOPn3*xb5nq1){{if(!(xb5nq1->IkJYR1&&xb5nq1-> -GhexM2==0&&!HAuYS2(UYtd71,xb5nq1)))goto BO9lK4;xb5nq1->GhexM2=1; -BO9lK4:;}}__forceinline static void CDXHr1(iOPn3*xb5nq1,unsigned -iBs7A2,MhiF14 IkJYR1){xb5nq1->GhexM2=0;xb5nq1->EbhBp3=iBs7A2;{if(!(( -xb5nq1->IkJYR1=IkJYR1)!=0))goto PMgqJ;xb5nq1->GhexM2=0x1;PMgqJ:;}} -static void Pp5_4(kWMzp1*J7Iki4){{unsigned kUguy3,H4ghS2=0;{if(!( -J7Iki4->iO1iw4[0]))goto l5kPU2;{volatile unsigned long*RdZoN;unsigned -ADRH25,rT0fp2,wk4VW,Hdw702;RdZoN=&J7Iki4->fV7o35->UyRVB4;ADRH25= -dMM0e1(RdZoN,0x8);{if(!(ADRH25&32))goto Ex2aA2;H4ghS2|=8192u;Ex2aA2:; -}rT0fp2=SlE234(RdZoN,036);wk4VW=dMM0e1(RdZoN,0x6);{if(!(wk4VW&0x8))goto -zC34g4;H4ghS2|=04u;goto KelN_4;zC34g4:;{{if(!((J7Iki4->iO1iw4[0]& -0360ul)>(0x5ul<<0x4)))goto XQClD;{{if(!((rT0fp2&0x4)))goto TPDls1; -H4ghS2|=1024u;TPDls1:;}{if(!(wk4VW&4))goto JTU4E;H4ghS2|=0x8u;JTU4E:; -}{if(!(wk4VW&01))goto u7xdA3;H4ghS2|=02u;u7xdA3:;}{if(!((J7Iki4-> -iO1iw4[0]&0360ul)>(0x6ul<<0x4)))goto qhKq6;{{if(!((rT0fp2&0x2)))goto -CRbKo2;H4ghS2|=4096u;CRbKo2:;}{if(!(wk4VW&64))goto NSe7w;H4ghS2|=64u; -NSe7w:;}switch(wk4VW&(128|32)){case 128:H4ghS2|=16u;break;case 32: -H4ghS2|=32u;break;default:wk4VW&=~(128|32);}}qhKq6:;}{if(!(J7Iki4-> -iO1iw4[0]&268435456ul))goto paxXI3;{{if(!(rT0fp2>>04>=015))goto xHgra -;H4ghS2|=16384u;xHgra:;}{if(!((rT0fp2&01)))goto LlIil1;H4ghS2|=2048u; -LlIil1:;}}paxXI3:;}}XQClD:;}{if(!(wk4VW&0x2))goto fm_hx3;H4ghS2|=1u; -fm_hx3:;}}KelN_4:;}{if(!(0x1&&(wk4VW&16)))goto vj2bt2;{H4ghS2|=256u; -J7Iki4->YRHFy->io7IZ3[0]._xj3V4++;}vj2bt2:;}Hdw702=dMM0e1(RdZoN,0x7); -{if(!(Hdw702&4))goto Oi41C4;H4ghS2|=128u;Oi41C4:;}{if(!(J7Iki4-> -iO1iw4[0]&65536ul))goto nkDDY;{{if(!(Hdw702&64))goto Qk17R1;{iOPn3* -xb5nq1=J7Iki4->hRUi43[0][0x2u];xb5nq1->BC6Zd3[xb5nq1->fVNme%256]=( -unsigned char)SlE234(RdZoN,31);{if(!((xb5nq1->fVNme-xb5nq1->ELKAp3)% -256>=256-01))goto FWoEJ2;{xb5nq1->PnawH[0]++;xb5nq1->ELKAp3++;}FWoEJ2 -:;}xb5nq1->fVNme++;vUYb92(02u,512,xb5nq1,J7Iki4,0);}Qk17R1:;}{if(!( -Hdw702&010))goto AooXh2;{iOPn3*xb5nq1=J7Iki4->hRUi43[0][3u];{if(!(( -xb5nq1->fVNme-xb5nq1->ELKAp3)%256>=0x1))goto xliFy2;{unsigned zQ6M_2= -xb5nq1->BC6Zd3[xb5nq1->ELKAp3%256];BucKo(RdZoN,041,J7Iki4->v6D2d3[0]. -jf4g9=(unsigned char)(zQ6M_2|64));xb5nq1->ELKAp3++;}goto N0cAE4; -xliFy2:;xb5nq1->PnawH[0]++;N0cAE4:;}vUYb92(0x3u,512,xb5nq1,J7Iki4,0); -}AooXh2:;}}goto Ytnfz2;nkDDY:;{if(!(J7Iki4->iO1iw4[0]&131072ul))goto -pZwR;{{if(!(Hdw702&02))goto qhPRk4;{int X3V8j4;iOPn3*xb5nq1=J7Iki4-> -hRUi43[0][02u];X3V8j4=07;{kB1KA:xb5nq1->BC6Zd3[(xb5nq1->fVNme+X3V8j4)% -256]=(unsigned char)SlE234(RdZoN,0130+X3V8j4);if(--X3V8j4>=0)goto -kB1KA;};{if(!((xb5nq1->fVNme-xb5nq1->ELKAp3)%256>=256-0x8))goto ak4S94 -;{xb5nq1->PnawH[0]++;xb5nq1->ELKAp3+=8;}ak4S94:;}xb5nq1->fVNme+=0x8; -vUYb92(0x2u,4096,xb5nq1,J7Iki4,0);}qhPRk4:;}{if(!(Hdw702&32))goto -D2VDT2;{iOPn3*xb5nq1=J7Iki4->hRUi43[0][0x3u];{if(!((xb5nq1->fVNme- -xb5nq1->ELKAp3)%256>=8))goto xZ7sX;{int X3V8j4=7;{jughc:BucKo(RdZoN, -0120+X3V8j4,xb5nq1->BC6Zd3[(xb5nq1->ELKAp3+X3V8j4)%256]);if(--X3V8j4 ->=0)goto jughc;};xb5nq1->ELKAp3+=0x8;}goto vGGMc2;xZ7sX:;xb5nq1-> -PnawH[0]++;vGGMc2:;}vUYb92(0x3u,4096,xb5nq1,J7Iki4,0);}D2VDT2:;}}pZwR -:;}Ytnfz2:;}{if(!(J7Iki4->iO1iw4[0]&32768ul))goto NUiYy1;{{if(!( -Hdw702&128))goto SgaJH4;{int X3V8j4;iOPn3*xb5nq1=J7Iki4->hRUi43[0][0u -];X3V8j4=017;{wY1aR:xb5nq1->BC6Zd3[(xb5nq1->fVNme+X3V8j4)%256]=( -unsigned char)SlE234(RdZoN,48+X3V8j4);if(--X3V8j4>=0)goto wY1aR;};{if -(!((xb5nq1->fVNme-xb5nq1->ELKAp3)%256>=256-16))goto if4tC3;{xb5nq1-> -PnawH[0]++;xb5nq1->ELKAp3+=16;}if4tC3:;}xb5nq1->fVNme+=16;vUYb92(0u, -4096,xb5nq1,J7Iki4,0);}SgaJH4:;}{if(!(Hdw702&32))goto W5FZB2;{iOPn3* -xb5nq1=J7Iki4->hRUi43[0][0x1u];{if(!((xb5nq1->fVNme-xb5nq1->ELKAp3)% -256>=16))goto qC85k4;{int X3V8j4=15;{Ov6y41:BucKo(RdZoN,64+X3V8j4, -J7Iki4->v6D2d3[0].FNU7M3[X3V8j4]=xb5nq1->BC6Zd3[(xb5nq1->ELKAp3+ -X3V8j4)%256]);if(--X3V8j4>=0)goto Ov6y41;};xb5nq1->ELKAp3+=16;}goto -o1L6S1;qC85k4:;xb5nq1->PnawH[0]++;o1L6S1:;}vUYb92(1u,4096,xb5nq1, -J7Iki4,0);}W5FZB2:;}}NUiYy1:;}{if(!(0&&(Hdw702&1)))goto Nufn25;{ -H4ghS2|=512u;J7Iki4->YRHFy->io7IZ3[0].ounCU4++;}Nufn25:;}BucKo(RdZoN, -0x16,J7Iki4->v6D2d3[0].Q1iXV3&~(01?wk4VW&~16:wk4VW));BucKo(RdZoN,0x17 -,J7Iki4->v6D2d3[0].DvwSz1&~(Hdw702&4));{if(!(Hdw702&16))goto sSbPo1;{ -J7Iki4->YRHFy->io7IZ3[0].smyqr+=(SlE234(RdZoN,0)<<010)+SlE234(RdZoN, -0x1);{if(!((J7Iki4->iO1iw4[0]&0360ul)>(5ul<<4)))goto zKRWY3;{unsigned -rx55l1,tYsSE2;rx55l1=SlE234(RdZoN,02);{if(!(J7Iki4->iO1iw4[0]& -268435456ul))goto lZCyu2;J7Iki4->YRHFy->io7IZ3[0].QV1Pb3+=((rx55l1&03 -)<<010)+SlE234(RdZoN,03);lZCyu2:;}tYsSE2=SlE234(RdZoN,4);{if(!(J7Iki4 -->iO1iw4[0]&(268435456ul|134217728ul)))goto Gl7nf;J7Iki4->YRHFy-> -io7IZ3[0].mZSLK1+=((tYsSE2&3)<<010)+SlE234(RdZoN,5);Gl7nf:;}J7Iki4-> -YRHFy->io7IZ3[0].zwLFt3+=(tYsSE2>>2)+((rx55l1&~03)<<6);}zKRWY3:;} -J7Iki4->YRHFy->io7IZ3[0].lpVV64++;}sSbPo1:;}}goto QptoN3;l5kPU2:; -H4ghS2=32768u;QptoN3:;}kUguy3=H4ghS2^J7Iki4->oXafA1[0].H4ghS2;{if(!( -kUguy3))goto uRG2Q2;{J7Iki4->YRHFy->io7IZ3[0].H4ghS2=J7Iki4->oXafA1[0 -].H4ghS2=H4ghS2;GLE_s4(J7Iki4,0);{if(!(J7Iki4->YRHFy->yjdp7))goto -PwiOJ;{uYS5N2(&J7Iki4->h2LrH3);J7Iki4->YRHFy->yjdp7(J7Iki4->YRHFy,0, -kUguy3);h2LrH3(&J7Iki4->h2LrH3);}PwiOJ:;}}uRG2Q2:;}};{unsigned kUguy3 -,H4ghS2=0;{if(!(J7Iki4->iO1iw4[01]))goto wyazp4;{volatile unsigned -long*RdZoN;unsigned ADRH25,rT0fp2,wk4VW,Hdw702;RdZoN=&J7Iki4->fV7o35 -->UyRVB4;ADRH25=NHDsK3(RdZoN,010);{if(!(ADRH25&32))goto ojbR01;H4ghS2 -|=8192u;ojbR01:;}rT0fp2=fFvjz3(RdZoN,0x1e);wk4VW=NHDsK3(RdZoN,0x6);{ -if(!(wk4VW&0x8))goto K7Qbq4;H4ghS2|=0x4u;goto rsP7X2;K7Qbq4:;{{if(!(( -J7Iki4->iO1iw4[01]&240ul)>(05ul<<4)))goto q8PSF2;{{if(!((rT0fp2&0x4)))goto -yQbCz;H4ghS2|=1024u;yQbCz:;}{if(!(wk4VW&04))goto qDbQb3;H4ghS2|=010u; -qDbQb3:;}{if(!(wk4VW&1))goto J4NyB2;H4ghS2|=02u;J4NyB2:;}{if(!(( -J7Iki4->iO1iw4[0x1]&0360ul)>(6ul<<4)))goto WvRg31;{{if(!((rT0fp2&2)))goto -PXdWr4;H4ghS2|=4096u;PXdWr4:;}{if(!(wk4VW&64))goto X04Ko3;H4ghS2|=64u -;X04Ko3:;}switch(wk4VW&(128|32)){case 128:H4ghS2|=16u;break;case 32: -H4ghS2|=32u;break;default:wk4VW&=~(128|32);}}WvRg31:;}{if(!(J7Iki4-> -iO1iw4[01]&268435456ul))goto eoj0m1;{{if(!(rT0fp2>>04>=015))goto -oOqXI4;H4ghS2|=16384u;oOqXI4:;}{if(!((rT0fp2&0x1)))goto qeXeK;H4ghS2 -|=2048u;qeXeK:;}}eoj0m1:;}}q8PSF2:;}{if(!(wk4VW&02))goto fZpYx3; -H4ghS2|=1u;fZpYx3:;}}rsP7X2:;}{if(!(1&&(wk4VW&16)))goto v3xAt2;{ -H4ghS2|=256u;J7Iki4->YRHFy->io7IZ3[0x1]._xj3V4++;}v3xAt2:;}Hdw702= -NHDsK3(RdZoN,7);{if(!(Hdw702&4))goto Nubfw;H4ghS2|=128u;Nubfw:;}{if(! -(J7Iki4->iO1iw4[0x1]&65536ul))goto kIw4A;{{if(!(Hdw702&64))goto hMOtf2 -;{iOPn3*xb5nq1=J7Iki4->hRUi43[1][02u];xb5nq1->BC6Zd3[xb5nq1->fVNme% -256]=(unsigned char)fFvjz3(RdZoN,31);{if(!((xb5nq1->fVNme-xb5nq1-> -ELKAp3)%256>=256-0x1))goto n9RMY;{xb5nq1->PnawH[0]++;xb5nq1->ELKAp3++ -;}n9RMY:;}xb5nq1->fVNme++;vUYb92(2u,512,xb5nq1,J7Iki4,01);}hMOtf2:;}{ -if(!(Hdw702&010))goto UzdZm4;{iOPn3*xb5nq1=J7Iki4->hRUi43[1][03u];{if -(!((xb5nq1->fVNme-xb5nq1->ELKAp3)%256>=1))goto VA7c_2;{unsigned zQ6M_2 -=xb5nq1->BC6Zd3[xb5nq1->ELKAp3%256];s3sCI1(RdZoN,0x21,J7Iki4->v6D2d3[ -1].jf4g9=(unsigned char)(zQ6M_2|64));xb5nq1->ELKAp3++;}goto _5jq61; -VA7c_2:;xb5nq1->PnawH[0]++;_5jq61:;}vUYb92(0x3u,512,xb5nq1,J7Iki4,1); -}UzdZm4:;}}goto OO3a03;kIw4A:;{if(!(J7Iki4->iO1iw4[0x1]&131072ul))goto -NJK9y1;{{if(!(Hdw702&2))goto pXz9V1;{int X3V8j4;iOPn3*xb5nq1=J7Iki4-> -hRUi43[01][02u];X3V8j4=07;{C3bNb:xb5nq1->BC6Zd3[(xb5nq1->fVNme+X3V8j4 -)%256]=(unsigned char)fFvjz3(RdZoN,0130+X3V8j4);if(--X3V8j4>=0)goto -C3bNb;};{if(!((xb5nq1->fVNme-xb5nq1->ELKAp3)%256>=256-010))goto ds3jz4 -;{xb5nq1->PnawH[0]++;xb5nq1->ELKAp3+=010;}ds3jz4:;}xb5nq1->fVNme+=0x8 -;vUYb92(2u,4096,xb5nq1,J7Iki4,1);}pXz9V1:;}{if(!(Hdw702&32))goto -nFUGf1;{iOPn3*xb5nq1=J7Iki4->hRUi43[1][0x3u];{if(!((xb5nq1->fVNme- -xb5nq1->ELKAp3)%256>=8))goto xAdT74;{int X3V8j4=7;{AxBoj2:s3sCI1( -RdZoN,0120+X3V8j4,xb5nq1->BC6Zd3[(xb5nq1->ELKAp3+X3V8j4)%256]);if(-- -X3V8j4>=0)goto AxBoj2;};xb5nq1->ELKAp3+=0x8;}goto NeqBE4;xAdT74:; -xb5nq1->PnawH[0]++;NeqBE4:;}vUYb92(0x3u,4096,xb5nq1,J7Iki4,0x1);} -nFUGf1:;}}NJK9y1:;}OO3a03:;}{if(!(J7Iki4->iO1iw4[0x1]&32768ul))goto -_lCoK1;{{if(!(Hdw702&128))goto n_AjF4;{int X3V8j4;iOPn3*xb5nq1=J7Iki4 -->hRUi43[0x1][0u];X3V8j4=15;{IYF8d1:xb5nq1->BC6Zd3[(xb5nq1->fVNme+ -X3V8j4)%256]=(unsigned char)fFvjz3(RdZoN,48+X3V8j4);if(--X3V8j4>=0)goto -IYF8d1;};{if(!((xb5nq1->fVNme-xb5nq1->ELKAp3)%256>=256-16))goto PXvj5 -;{xb5nq1->PnawH[0]++;xb5nq1->ELKAp3+=16;}PXvj5:;}xb5nq1->fVNme+=16; -vUYb92(0u,4096,xb5nq1,J7Iki4,0x1);}n_AjF4:;}{if(!(Hdw702&32))goto -EHOiM1;{iOPn3*xb5nq1=J7Iki4->hRUi43[1][1u];{if(!((xb5nq1->fVNme- -xb5nq1->ELKAp3)%256>=16))goto Zh7nv2;{int X3V8j4=15;{oOE2W:s3sCI1( -RdZoN,64+X3V8j4,J7Iki4->v6D2d3[1].FNU7M3[X3V8j4]=xb5nq1->BC6Zd3[( -xb5nq1->ELKAp3+X3V8j4)%256]);if(--X3V8j4>=0)goto oOE2W;};xb5nq1-> -ELKAp3+=16;}goto KSS8F;Zh7nv2:;xb5nq1->PnawH[0]++;KSS8F:;}vUYb92(0x1u -,4096,xb5nq1,J7Iki4,01);}EHOiM1:;}}_lCoK1:;}{if(!(0&&(Hdw702&01)))goto -__FnD3;{H4ghS2|=512u;J7Iki4->YRHFy->io7IZ3[0x1].ounCU4++;}__FnD3:;} -s3sCI1(RdZoN,026,J7Iki4->v6D2d3[0x1].Q1iXV3&~(0x1?wk4VW&~16:wk4VW)); -s3sCI1(RdZoN,23,J7Iki4->v6D2d3[1].DvwSz1&~(Hdw702&4));{if(!(Hdw702&16 -))goto B_9IY2;{J7Iki4->YRHFy->io7IZ3[0x1].smyqr+=(fFvjz3(RdZoN,0)<<8)+ -fFvjz3(RdZoN,0x1);{if(!((J7Iki4->iO1iw4[1]&240ul)>(5ul<<4)))goto -gbJeJ4;{unsigned rx55l1,tYsSE2;rx55l1=fFvjz3(RdZoN,2);{if(!(J7Iki4-> -iO1iw4[0x1]&268435456ul))goto bgpE63;J7Iki4->YRHFy->io7IZ3[1].QV1Pb3 -+=((rx55l1&0x3)<<8)+fFvjz3(RdZoN,3);bgpE63:;}tYsSE2=fFvjz3(RdZoN,4);{ -if(!(J7Iki4->iO1iw4[0x1]&(268435456ul|134217728ul)))goto kixrg4; -J7Iki4->YRHFy->io7IZ3[0x1].mZSLK1+=((tYsSE2&03)<<010)+fFvjz3(RdZoN,05 -);kixrg4:;}J7Iki4->YRHFy->io7IZ3[1].zwLFt3+=(tYsSE2>>0x2)+((rx55l1&~ -0x3)<<6);}gbJeJ4:;}J7Iki4->YRHFy->io7IZ3[0x1].lpVV64++;}B_9IY2:;}} -goto DpY605;wyazp4:;H4ghS2=32768u;DpY605:;}kUguy3=H4ghS2^J7Iki4-> -oXafA1[0x1].H4ghS2;{if(!(kUguy3))goto dWbRI2;{J7Iki4->YRHFy->io7IZ3[1 -].H4ghS2=J7Iki4->oXafA1[0x1].H4ghS2=H4ghS2;GLE_s4(J7Iki4,01);{if(!( -J7Iki4->YRHFy->yjdp7))goto meOKL1;{uYS5N2(&J7Iki4->h2LrH3);J7Iki4-> -YRHFy->yjdp7(J7Iki4->YRHFy,0x1,kUguy3);h2LrH3(&J7Iki4->h2LrH3);} -meOKL1:;}}dWbRI2:;}};}__noinline static void cSW2U1(kWMzp1*J7Iki4, -volatile unsigned long*RdZoN){int X3V8j4;AUUSL3(RdZoN,7,0);X3V8j4=0;{ -yJEe8:{J7Iki4->P9UkM1[0][X3V8j4]=(unsigned char)X3V8j4;J7Iki4->P9UkM1 -[01][X3V8j4]=(unsigned char)X3V8j4;AUUSL3(RdZoN,6,X3V8j4);}if(++ -X3V8j4<96)goto yJEe8;};AUUSL3(RdZoN,0,J7Iki4->GEt0d|4);}__forceinline -static void UWXL71(kWMzp1*J7Iki4){J7Iki4->fV7o35->PGh3e4=0xC000101Ful -;J7Iki4->fV7o35->Be1a54=lPIbL4;J7Iki4->fV7o35->PGh3e4=0xC060101Ful;} -void __attribute__((cdecl))TAU32_EnableInterrupts(kWMzp1*J7Iki4){ -OeCZm2(&J7Iki4->h2LrH3);J7Iki4->fV7o35->P3rGX3=(unsigned long)~( -r3CcP2|Sptqu|kCJ6a1|w9B8P4|gQf6j1|lPIbL4|j0Yx9|C10QV);J7Iki4->fV7o35 -->YOy672=0u;UWXL71(J7Iki4);}void __attribute__((cdecl))TAU32_DisableInterrupts -(kWMzp1*J7Iki4){CLbj94(J7Iki4);OeCZm2(&J7Iki4->h2LrH3);}static void -w_2xo4(kWMzp1*J7Iki4){UWXL71(J7Iki4);WqCeB2(J7Iki4);Pp5_4(J7Iki4); -qWaP5(J7Iki4);}void __attribute__((cdecl))TAU32_BeforeReset(oSdJm* -YRHFy){{if(!(YRHFy))goto AbRV73;{volatile LbJOV*fV7o35=(volatile LbJOV - * )YRHFy->Y3IxL2;{if(!(fV7o35))goto G2b703;{fV7o35->P3rGX3=~0ul; -fV7o35->PGh3e4=0ul;fV7o35->e6VgP3.dZK6h3=0ul;fV7o35->YOy672=~0ul; -fV7o35->y8QlL=0ul;}G2b703:;}}AbRV73:;}}static int qWaP5(kWMzp1*J7Iki4 -){int jSJ9c=01750;{ggCLj1:{J7Iki4->fV7o35->PGh3e4=0xC000101Ful;J7Iki4 -->fV7o35->Be1a54=lPIbL4;WqCeB2(J7Iki4);Pp5_4(J7Iki4);{if(!(--jSJ9c==0 -))goto ChhzO2;goto R67oM;ChhzO2:;}J7Iki4->fV7o35->PGh3e4=0xC060101Ful -;}if(J7Iki4->fV7o35->euuEB1&0x2)goto ggCLj1;};return 01;R67oM:{DbzEH3 -:{__asm __volatile(""::);__asm __volatile("lock; addl $0,(%%esp)": : : -"cc");__asm __volatile(""::);}if(0)goto DbzEH3;};J7Iki4->fV7o35-> -P3rGX3|=lPIbL4;{HfzOC3:{__asm __volatile(""::);__asm __volatile( -"lock; addl $0,(%%esp)": : :"cc");__asm __volatile(""::);}if(0)goto -HfzOC3;};J7Iki4->fV7o35->PGh3e4=0;{MFJhy:{__asm __volatile(""::); -__asm __volatile("lock; addl $0,(%%esp)": : :"cc");__asm __volatile( -""::);}if(0)goto MFJhy;};{if(!(J7Iki4->YRHFy->b_7cQ4))goto ZEORi4;{ -uYS5N2(&J7Iki4->h2LrH3);J7Iki4->YRHFy->b_7cQ4(J7Iki4->YRHFy,-0x2, -1048576ul);h2LrH3(&J7Iki4->h2LrH3);}ZEORi4:;}return-0x1;}int -__attribute__((cdecl))TAU32_IsInterruptPending(kWMzp1*J7Iki4){return -nIaSt(J7Iki4);}__noinline static unsigned __fastcall WqCeB2(kWMzp1* -J7Iki4){volatile unsigned long*RdZoN;unsigned qKhEV3,jfimS4,H4ghS2; -RdZoN=&J7Iki4->fV7o35->UyRVB4;H4ghS2=RtiEy4(RdZoN,0);jfimS4=J7Iki4-> -jfimS4&~0x1u;{if(!((H4ghS2&64)&&(J7Iki4->GEt0d&8)))goto bquFc1;{{if(! -(!(J7Iki4->jfimS4&1u)))goto RyvaA1;J7Iki4->YRHFy->eR4Uq4++;RyvaA1:;} -jfimS4|=0x1u;}bquFc1:;}{if(!(H4ghS2&128))goto vFgpP;{jfimS4&=~4u;{if( -!(jfimS4&0x2u))goto eLCHB1;{int aKuBh3=96;{if(!(J7Iki4->SP4ZU==0x2))goto -pmY4;aKuBh3-=32;pmY4:;}DhumT2(J7Iki4,RdZoN,aKuBh3);jfimS4=(jfimS4| -0x4u)&~0x2u;}eLCHB1:;}}vFgpP:;}qKhEV3=J7Iki4->jfimS4^jfimS4;{if(!( -qKhEV3))goto Ai0te;{J7Iki4->YRHFy->jfimS4=J7Iki4->jfimS4=jfimS4;{if(! -(J7Iki4->YRHFy->yjdp7))goto _PLB03;{uYS5N2(&J7Iki4->h2LrH3);J7Iki4-> -YRHFy->yjdp7(J7Iki4->YRHFy,-0x1,qKhEV3);h2LrH3(&J7Iki4->h2LrH3);} -_PLB03:;}}Ai0te:;}return H4ghS2;}int __attribute__((cdecl))TAU32_HandleInterrupt -(kWMzp1*J7Iki4){int Kt5Iv1;wP7Tk3(&J7Iki4->h2LrH3);Kt5Iv1=yoLEn3( -J7Iki4);uYS5N2(&J7Iki4->h2LrH3);return Kt5Iv1;}int __attribute__(( -cdecl))TAU32_SubmitRequest(kWMzp1*J7Iki4,QDNE6*wkiYO4){int Kt5Iv1; -h2LrH3(&J7Iki4->h2LrH3);Kt5Iv1=i_1fA2(J7Iki4,wkiYO4);uYS5N2(&J7Iki4-> -h2LrH3);return Kt5Iv1;}int __attribute__((cdecl))TAU32_CancelRequest( -kWMzp1*J7Iki4,QDNE6*wkiYO4,int pTM6S){int Kt5Iv1;h2LrH3(&J7Iki4-> -h2LrH3);Kt5Iv1=QrVoB3(J7Iki4,wkiYO4,pTM6S);{if(!(Kt5Iv1))goto k7EcZ1; -{}k7EcZ1:;}uYS5N2(&J7Iki4->h2LrH3);return Kt5Iv1;}__forceinline -static int L37Zk1(int aKuBh3,unsigned char*kEiqy3,unsigned long m45Hf -,unsigned char*hkhXH3,unsigned char*WMa7R){const unsigned KgiuB1=127u -;const unsigned gSjrH4=128u;int qwUGv3=0;int X3V8j4=0;{pmBVh4:{int -SHSV72=kEiqy3?kEiqy3[X3V8j4]:(hkhXH3[X3V8j4]&~gSjrH4);{if(!(SHSV72>= -aKuBh3))goto uUJBR;SHSV72=KgiuB1;uUJBR:;}{if(!(X3V8j4<32))goto nrrxW3 -;{{if(!(m45Hf&01))goto xGEHY2;SHSV72|=gSjrH4;xGEHY2:;}m45Hf>>=01;} -nrrxW3:;}{if(!(qwUGv3||SHSV72!=hkhXH3[X3V8j4]))goto WJral3;{WMa7R[ -X3V8j4]=(unsigned char)SHSV72;{if(!(!qwUGv3))goto H5wQ5;{int hObSM4;{ -hObSM4=0;mABZV4:if(!(hObSM4xOYSq1[X3V8j4]!=J7Iki4 -->bNfmc1[X3V8j4]))goto Qb7_F2;{{if(!(y3nfl4!=X3V8j4))goto nij914; -AUUSL3(RdZoN,0x7,X3V8j4);nij914:;}AUUSL3(RdZoN,6,J7Iki4->bNfmc1[ -X3V8j4]=J7Iki4->xOYSq1[X3V8j4]);y3nfl4=X3V8j4+0x1;}Qb7_F2:;}}if(++ -X3V8j4GEt0d|04);ldkSL4= -J7Iki4->bNfmc1;J7Iki4->bNfmc1=J7Iki4->veMrO;J7Iki4->veMrO=ldkSL4; -GLE_s4(J7Iki4,(-0x1));}int __attribute__((cdecl))TAU32_SetCrossMatrix -(kWMzp1*J7Iki4,unsigned char*eCQDF,unsigned long m45Hf){int aKuBh3; -h2LrH3(&J7Iki4->h2LrH3);aKuBh3=96;{if(!(J7Iki4->SP4ZU==02))goto YTCT72 -;aKuBh3-=32;YTCT72:;}{if(!(L37Zk1(aKuBh3,eCQDF,m45Hf,J7Iki4->veMrO, -J7Iki4->xOYSq1)))goto YJ3xz2;{volatile unsigned long*RdZoN;RdZoN=& -J7Iki4->fV7o35->UyRVB4;{if(!(J7Iki4->jfimS4&0x4u))goto lKr7C;{{if(!(! -(J7Iki4->jfimS4&0x2u)))goto xaiXa;{J7Iki4->YRHFy->jfimS4=J7Iki4-> -jfimS4|=02u;{if(!(J7Iki4->YRHFy->yjdp7))goto ZBFlD1;{uYS5N2(&J7Iki4-> -h2LrH3);J7Iki4->YRHFy->yjdp7(J7Iki4->YRHFy,-0x1,2u);h2LrH3(&J7Iki4-> -h2LrH3);}ZBFlD1:;}}xaiXa:;}}goto jFtDD4;lKr7C:;{J7Iki4->YRHFy->jfimS4 -=J7Iki4->jfimS4|=4u;DhumT2(J7Iki4,RdZoN,aKuBh3);}jFtDD4:;}}goto yMivT1 -;YJ3xz2:;{{if(!(J7Iki4->jfimS4&2u))goto XsLr1;{J7Iki4->YRHFy->jfimS4= -J7Iki4->jfimS4&=~0x2u;{if(!(J7Iki4->YRHFy->yjdp7))goto cVjEh2;{uYS5N2 -(&J7Iki4->h2LrH3);J7Iki4->YRHFy->yjdp7(J7Iki4->YRHFy,-1,2u);h2LrH3(& -J7Iki4->h2LrH3);}cVjEh2:;}}XsLr1:;}}yMivT1:;}uYS5N2(&J7Iki4->h2LrH3); -return 0x1;}void __attribute__((cdecl))TAU32_LedBlink(kWMzp1*J7Iki4){ -volatile unsigned long*RdZoN;h2LrH3(&J7Iki4->h2LrH3);J7Iki4->YRHFy-> -jfimS4=J7Iki4->jfimS4^=0x8u;J7Iki4->GEt0d^=16;RdZoN=&J7Iki4->fV7o35 -->UyRVB4;AUUSL3(RdZoN,0,J7Iki4->GEt0d);uYS5N2(&J7Iki4->h2LrH3);}void -__attribute__((cdecl))TAU32_LedSet(kWMzp1*J7Iki4,int xkMXp){unsigned -t57WF3;h2LrH3(&J7Iki4->h2LrH3);t57WF3=J7Iki4->GEt0d&~16;{if(!(xkMXp))goto -nToJ62;t57WF3|=16;nToJ62:;}{if(!(J7Iki4->GEt0d!=t57WF3))goto d7HTj3;{ -volatile unsigned long*RdZoN;unsigned jfimS4=J7Iki4->jfimS4&~8u;{if(! -(t57WF3&16))goto pylPi3;jfimS4|=0x8u;pylPi3:;}J7Iki4->YRHFy->jfimS4= -J7Iki4->jfimS4=jfimS4;RdZoN=&J7Iki4->fV7o35->UyRVB4;AUUSL3(RdZoN,0, -J7Iki4->GEt0d=t57WF3);}d7HTj3:;}uYS5N2(&J7Iki4->h2LrH3);}static -__forceinline unsigned long long kD2ag4(unsigned long trZRN4,unsigned -long xcOQU2){unsigned long long Kt5Iv1;__asm__("mull %2":"=A,A"( -Kt5Iv1):"%a,%a"(trZRN4),"r,m"(xcOQU2):"cc");return Kt5Iv1;}unsigned -long long __attribute__((cdecl))TAU32_ProbeGeneratorFrequency( -unsigned long long jYvNM3){unsigned long TrF875,V4Eg_2,yG5VL=0,Curt94 -=(unsigned long)(jYvNM3>>32);{if(!(((int)Curt94)<=0))goto PY2k02; -Curt94=2048000;goto iJL0J;PY2k02:;{if(!(Curt94<2048000-0x1388))goto -fcI1o1;Curt94=2048000-0x1388;goto dEEsv;fcI1o1:;{if(!(Curt94>=2048000 -+011610))goto pfvK;Curt94=2048000+011610;goto z7JL65;pfvK:;yG5VL=( -unsigned long)jYvNM3;z7JL65:;}dEEsv:;}iJL0J:;}jYvNM3=(((unsigned long -long)Curt94)<<32)+yG5VL;jYvNM3+=65536*0175/2;jYvNM3>>=16;__asm__( -"divl %3":"=a,a"(TrF875),"=d,d"(V4Eg_2):"A,A"(jYvNM3),"r,m"(0175): -"cc");return kD2ag4(TrF875,0175*65536);}unsigned long long -__attribute__((cdecl))TAU32_SetGeneratorFrequency(kWMzp1*J7Iki4, -unsigned long long jYvNM3){volatile unsigned long*RdZoN;unsigned long -TrF875;unsigned long V4Eg_2,Curt94=(unsigned long)(jYvNM3>>32);{if(!( -((int)Curt94)<=0))goto ajFIr1;goto ejnKl2;goto bSFnY1;ajFIr1:;{if(!( -Curt94<2048000-011610))goto UVOU33;goto kIGV65;goto LHp0y4;UVOU33:;{ -if(!(Curt94>=2048000+011610))goto MT7_U;goto uuBga4;MT7_U:;}LHp0y4:;} -bSFnY1:;}mcEID3:jYvNM3+=65536*0175/02;jYvNM3>>=16;__asm__("divl %3": -"=a,a"(TrF875),"=d,d"(V4Eg_2):"A,A"(jYvNM3),"r,m"(0175):"cc");h2LrH3 -(&J7Iki4->h2LrH3);{if(!(J7Iki4->hBew43!=TrF875))goto Vs72l;{J7Iki4-> -hBew43=TrF875;RdZoN=&J7Iki4->fV7o35->UyRVB4;LzuvP2(RdZoN,TrF875);} -Vs72l:;}uYS5N2(&J7Iki4->h2LrH3);return kD2ag4(TrF875,125*65536); -ejnKl2:jYvNM3=((unsigned long long)2048000ul)<<32;goto mcEID3;kIGV65: -jYvNM3=((unsigned long long)2048000ul-011610)<<32;goto mcEID3;uuBga4: -jYvNM3=((unsigned long long)2048000ul+011610)<<32;goto mcEID3;}int -__attribute__((cdecl))TAU32_SetSyncMode(kWMzp1*J7Iki4,unsigned JzUUv2 -){unsigned t57WF3;h2LrH3(&J7Iki4->h2LrH3);t57WF3=J7Iki4->GEt0d&~0x23; -switch(JzUUv2){case 03:t57WF3|=32;break;case 0x1:t57WF3|=02;break; -case 0:t57WF3|=1;break;case 2:{if(!(J7Iki4->SP4ZU!=02))goto ur7M31;{ -t57WF3|=0x3;break;}ur7M31:;}default:uYS5N2(&J7Iki4->h2LrH3);return 0; -}{if(!(J7Iki4->GEt0d!=t57WF3))goto jIkkW3;{volatile unsigned long* -RdZoN;RdZoN=&J7Iki4->fV7o35->UyRVB4;AUUSL3(RdZoN,0,J7Iki4->GEt0d= -t57WF3);}jIkkW3:;}uYS5N2(&J7Iki4->h2LrH3);return 0x1;}int -__attribute__((cdecl))TAU32_SetCasIo(kWMzp1*J7Iki4,int qUKv12){{if(!( -J7Iki4->SP4ZU==02))goto BBR_Y2;return 0;goto sYPGd4;BBR_Y2:;{unsigned -t57WF3;h2LrH3(&J7Iki4->h2LrH3);t57WF3=J7Iki4->GEt0d&~0x8;{if(!(qUKv12 -))goto E98ZN1;t57WF3|=010;E98ZN1:;}{if(!(J7Iki4->GEt0d!=t57WF3))goto -x4H574;{volatile unsigned long*RdZoN;RdZoN=&J7Iki4->fV7o35->UyRVB4; -AUUSL3(RdZoN,0,J7Iki4->GEt0d=t57WF3);GLE_s4(J7Iki4,(-1));}x4H574:;} -uYS5N2(&J7Iki4->h2LrH3);return 1;}sYPGd4:;}}int __attribute__((cdecl))TAU32_UpdateIdleCodes -(kWMzp1*J7Iki4,int b9Zs_,unsigned long dJtvs,unsigned char RAwCl1){ -int fRgzh2=0;int X3V8j4;{if(!((b9Zs_!=(-0x1)&&b9Zs_>1)||dJtvs==0))goto -ObnCM2;return 0;ObnCM2:;}{if(!(J7Iki4->SP4ZU==2&&b9Zs_>0))goto UiHem4 -;return 0;UiHem4:;}h2LrH3(&J7Iki4->h2LrH3);X3V8j4=0;{Ssl144:{{if(!( -dJtvs&0x1))goto TpZ785;{{if(!(b9Zs_==(-1)||b9Zs_==0))goto j7vft;{if(! -(J7Iki4->jyElQ3[0][X3V8j4]!=RAwCl1))goto g1F5_1;{J7Iki4->jyElQ3[0][ -X3V8j4]=RAwCl1;fRgzh2=01;}g1F5_1:;}j7vft:;}{if(!(J7Iki4->SP4ZU!=2))goto -pMVyr2;{if(!(b9Zs_==(-1)||b9Zs_==01))goto v8BDc2;{if(!(J7Iki4->jyElQ3 -[01][X3V8j4]!=RAwCl1))goto a2mb94;{J7Iki4->jyElQ3[01][X3V8j4]=RAwCl1; -fRgzh2=0x1;}a2mb94:;}v8BDc2:;}pMVyr2:;}}TpZ785:;}++X3V8j4;}if((32==32 -||X3V8j4<32)&&(dJtvs>>=0x1)!=0)goto Ssl144;};{if(!(fRgzh2))goto RguOm -;GLE_s4(J7Iki4,b9Zs_);RguOm:;}uYS5N2(&J7Iki4->h2LrH3);return 1;}int -__attribute__((cdecl))TAU32_SetIdleCodes(kWMzp1*J7Iki4,unsigned char* -PTDns3){int fRgzh2=0;int X3V8j4=(J7Iki4->SP4ZU==02)?32-0x1:32*02-1;{ -J99ok3:{if(!(PTDns3[X3V8j4]>0xF&&PTDns3[X3V8j4]!=0xFF))goto bymxW4; -return 0;bymxW4:;}if(--X3V8j4>=0)goto J99ok3;};h2LrH3(&J7Iki4->h2LrH3 -);X3V8j4=(J7Iki4->SP4ZU==0x2)?32-0x1:32*2-01;{lfF_u2:{if(!(PTDns3[ -X3V8j4]<=0xF&&J7Iki4->jyElQ3[X3V8j4/32][X3V8j4%32]!=PTDns3[X3V8j4]))goto -rQ3tw3;{J7Iki4->jyElQ3[X3V8j4/32][X3V8j4%32]=PTDns3[X3V8j4];fRgzh2=01 -;}rQ3tw3:;}if(--X3V8j4>=0)goto lfF_u2;};{if(!(fRgzh2))goto bY6sq; -GLE_s4(J7Iki4,(-1));bY6sq:;}uYS5N2(&J7Iki4->h2LrH3);return 0x1;} -__forceinline static int Ji6_v2(unsigned UYtd71,iOPn3*xb5nq1,unsigned -char*X3ca,unsigned IOwwG2){unsigned X3V8j4;{if(!(256-(xb5nq1->fVNme- -xb5nq1->ELKAp3)%256BC6Zd3[(xb5nq1->fVNme+X3V8j4)%256]=X3ca[ -X3V8j4];goto iqpue4;HKFgD2:;}xb5nq1->fVNme+=IOwwG2;r_RoY4(UYtd71, -xb5nq1);return 256-(xb5nq1->fVNme-xb5nq1->ELKAp3)%256;}__forceinline -static int X9u3r2(unsigned UYtd71,iOPn3*xb5nq1,unsigned char*X3ca, -unsigned IOwwG2){unsigned X3V8j4;{if(!(256-(xb5nq1->fVNme-xb5nq1-> -ELKAp3)%256ELKAp3-= -IOwwG2;{X3V8j4=0;Jx3ko4:if(!(X3V8j4BC6Zd3[(xb5nq1->ELKAp3+ -X3V8j4)%256]=X3ca[X3V8j4];goto mXOjF3;U7bxz1:;}r_RoY4(UYtd71,xb5nq1); -return 256-(xb5nq1->fVNme-xb5nq1->ELKAp3)%256;}__forceinline static -int usMAR(unsigned UYtd71,iOPn3*xb5nq1,unsigned char*X3ca,unsigned -IOwwG2){unsigned X3V8j4;{if(!((xb5nq1->fVNme-xb5nq1->ELKAp3)%256< -IOwwG2))goto fp7Hi1;{return-0x1;}fp7Hi1:;}{X3V8j4=0;oiRcs2:if(!( -X3V8j4BC6Zd3[(xb5nq1->ELKAp3+X3V8j4)%256];goto -E3PNZ3;ItGZm3:;}xb5nq1->ELKAp3+=IOwwG2;r_RoY4(UYtd71,xb5nq1);return( -xb5nq1->fVNme-xb5nq1->ELKAp3)%256;}__forceinline static void cYVI15( -unsigned UYtd71,iOPn3*xb5nq1){xb5nq1->fVNme=0;xb5nq1->ELKAp3=0;xb5nq1 -->KQKqV1=0;{if(!(xb5nq1->PnawH))goto bf1St1;xb5nq1->PnawH[0]=0;bf1St1 -:;}r_RoY4(UYtd71,xb5nq1);}int __attribute__((cdecl))TAU32_FifoPutCasAppend -(kWMzp1*J7Iki4,int b9Zs_,unsigned char*X3ca,unsigned IOwwG2){int -Kt5Iv1=-2;h2LrH3(&J7Iki4->h2LrH3);switch(b9Zs_){case 0:Kt5Iv1=Ji6_v2( -01u,&J7Iki4->oXafA1[0].KqthD[01u],X3ca,IOwwG2);break;case 1:{if(!( -J7Iki4->SP4ZU!=0x2))goto BjC5Z;Kt5Iv1=Ji6_v2(01u,&J7Iki4->oXafA1[01]. -KqthD[01u],X3ca,IOwwG2);BjC5Z:;}break;case(-1):Kt5Iv1=Ji6_v2(0x1u,& -J7Iki4->oXafA1[0].KqthD[01u],X3ca,IOwwG2);{if(!(J7Iki4->SP4ZU!=2))goto -lJjph3;{int QEvwb3=Ji6_v2(0x1u,&J7Iki4->oXafA1[1].KqthD[01u],X3ca, -IOwwG2);{if(!(QEvwb3h2LrH3);return Kt5Iv1;}int __attribute__(( -cdecl))TAU32_FifoPutCasAhead(kWMzp1*J7Iki4,int b9Zs_,unsigned char* -X3ca,unsigned IOwwG2){int Kt5Iv1=-2;h2LrH3(&J7Iki4->h2LrH3);switch( -b9Zs_){case 0:Kt5Iv1=X9u3r2(0x1u,&J7Iki4->oXafA1[0].KqthD[0x1u],X3ca, -IOwwG2);break;case 1:{if(!(J7Iki4->SP4ZU!=2))goto FwDnd1;Kt5Iv1= -X9u3r2(0x1u,&J7Iki4->oXafA1[0x1].KqthD[0x1u],X3ca,IOwwG2);FwDnd1:;} -break;case(-01):Kt5Iv1=X9u3r2(1u,&J7Iki4->oXafA1[0].KqthD[0x1u],X3ca, -IOwwG2);{if(!(J7Iki4->SP4ZU!=2))goto kVVIy3;{int QEvwb3=X9u3r2(0x1u,& -J7Iki4->oXafA1[01].KqthD[0x1u],X3ca,IOwwG2);{if(!(QEvwb3h2LrH3); -return Kt5Iv1;}int __attribute__((cdecl))TAU32_FifoGetCas(kWMzp1* -J7Iki4,int b9Zs_,unsigned char*X3ca,unsigned IOwwG2){int Kt5Iv1=-2; -h2LrH3(&J7Iki4->h2LrH3);switch(b9Zs_){case 0:Kt5Iv1=usMAR(0u,&J7Iki4 -->oXafA1[0].KqthD[0u],X3ca,IOwwG2);break;case 1:{if(!(J7Iki4->SP4ZU!= -2))goto WXoBp4;Kt5Iv1=usMAR(0u,&J7Iki4->oXafA1[01].KqthD[0u],X3ca, -IOwwG2);WXoBp4:;}break;}uYS5N2(&J7Iki4->h2LrH3);return Kt5Iv1;}int -__attribute__((cdecl))TAU32_FifoPutFasAppend(kWMzp1*J7Iki4,int b9Zs_, -unsigned char*X3ca,unsigned IOwwG2){int Kt5Iv1=-02;h2LrH3(&J7Iki4-> -h2LrH3);switch(b9Zs_){case 0:Kt5Iv1=Ji6_v2(03u,&J7Iki4->oXafA1[0]. -KqthD[0x3u],X3ca,IOwwG2);break;case 0x1:{if(!(J7Iki4->SP4ZU!=0x2))goto -_m6_f;Kt5Iv1=Ji6_v2(0x3u,&J7Iki4->oXafA1[1].KqthD[03u],X3ca,IOwwG2); -_m6_f:;}break;case(-01):Kt5Iv1=Ji6_v2(03u,&J7Iki4->oXafA1[0].KqthD[ -03u],X3ca,IOwwG2);{if(!(J7Iki4->SP4ZU!=02))goto Id_AA4;{int QEvwb3= -Ji6_v2(03u,&J7Iki4->oXafA1[1].KqthD[0x3u],X3ca,IOwwG2);{if(!(QEvwb3< -Kt5Iv1))goto gu62o;Kt5Iv1=QEvwb3;gu62o:;}}Id_AA4:;}}uYS5N2(&J7Iki4-> -h2LrH3);return Kt5Iv1;}int __attribute__((cdecl))TAU32_FifoPutFasAhead -(kWMzp1*J7Iki4,int b9Zs_,unsigned char*X3ca,unsigned IOwwG2){int -Kt5Iv1=-02;h2LrH3(&J7Iki4->h2LrH3);switch(b9Zs_){case 0:Kt5Iv1=X9u3r2 -(03u,&J7Iki4->oXafA1[0].KqthD[0x3u],X3ca,IOwwG2);break;case 01:{if(!( -J7Iki4->SP4ZU!=02))goto VJWHk;Kt5Iv1=X9u3r2(03u,&J7Iki4->oXafA1[0x1]. -KqthD[3u],X3ca,IOwwG2);VJWHk:;}break;case(-1):Kt5Iv1=X9u3r2(03u,& -J7Iki4->oXafA1[0].KqthD[3u],X3ca,IOwwG2);{if(!(J7Iki4->SP4ZU!=02))goto -R0ObX2;{int QEvwb3=X9u3r2(0x3u,&J7Iki4->oXafA1[0x1].KqthD[03u],X3ca, -IOwwG2);{if(!(QEvwb3h2LrH3);return Kt5Iv1;}int __attribute__(( -cdecl))TAU32_FifoGetFas(kWMzp1*J7Iki4,int b9Zs_,unsigned char*X3ca, -unsigned IOwwG2){int Kt5Iv1=-2;h2LrH3(&J7Iki4->h2LrH3);switch(b9Zs_){ -case 0:Kt5Iv1=usMAR(02u,&J7Iki4->oXafA1[0].KqthD[0x2u],X3ca,IOwwG2); -break;case 01:{if(!(J7Iki4->SP4ZU!=02))goto f9Ox83;Kt5Iv1=usMAR(2u,& -J7Iki4->oXafA1[0x1].KqthD[2u],X3ca,IOwwG2);f9Ox83:;}break;}uYS5N2(& -J7Iki4->h2LrH3);return Kt5Iv1;}__noinline static void __fastcall -AErNL3(kWMzp1*J7Iki4){{unsigned X3V8j4;volatile unsigned long*RdZoN; -J7Iki4->v6D2d3[0].DvwSz1=0;cYVI15(0x1u,J7Iki4->hRUi43[0][0x1u]); -cYVI15(3u,J7Iki4->hRUi43[0][03u]);RdZoN=&J7Iki4->fV7o35->UyRVB4;BucKo -(RdZoN,32,0233);BucKo(RdZoN,0x21,J7Iki4->v6D2d3[0].jf4g9=0xDF);BucKo( -RdZoN,64,J7Iki4->v6D2d3[0].FNU7M3[0]=013);X3V8j4=017;{h_bP43:BucKo( -RdZoN,64+X3V8j4,J7Iki4->v6D2d3[0].FNU7M3[X3V8j4]=0xFF);if(--X3V8j4)goto -h_bP43;};BucKo(RdZoN,0120,0xFF);BucKo(RdZoN,0121,0xFF);BucKo(RdZoN, -0122,0);BucKo(RdZoN,0123,0xFF);BucKo(RdZoN,0124,0xFF);BucKo(RdZoN, -0125,0xFF);BucKo(RdZoN,0126,0xFF);BucKo(RdZoN,0127,0xFF);X3V8j4=32;{ -PcYU4:{BucKo(RdZoN,0140+X3V8j4-1,J7Iki4->jyElQ3[0][X3V8j4-1]=J7Iki4-> -v6D2d3[0].mHM361[X3V8j4-0x1]=0xD5);BucKo(RdZoN,128+X3V8j4-1,0xFF);}if -(--X3V8j4)goto PcYU4;};HcALQ1(RdZoN,042,J7Iki4->v6D2d3[0].wGgJV2=3); -HcALQ1(RdZoN,0xa0,J7Iki4->v6D2d3[0].x8DWY2=~0ul);HcALQ1(RdZoN,0xa4, -J7Iki4->v6D2d3[0].oWLOw3=~0ul);};}__noinline static void __fastcall -tsz3n4(kWMzp1*J7Iki4){{unsigned X3V8j4;volatile unsigned long*RdZoN; -J7Iki4->v6D2d3[01].DvwSz1=0;cYVI15(1u,J7Iki4->hRUi43[1][1u]);cYVI15( -3u,J7Iki4->hRUi43[1][0x3u]);RdZoN=&J7Iki4->fV7o35->UyRVB4;s3sCI1( -RdZoN,32,0233);s3sCI1(RdZoN,041,J7Iki4->v6D2d3[1].jf4g9=0xDF);s3sCI1( -RdZoN,64,J7Iki4->v6D2d3[01].FNU7M3[0]=013);X3V8j4=017;{Mjvwg1:s3sCI1( -RdZoN,64+X3V8j4,J7Iki4->v6D2d3[1].FNU7M3[X3V8j4]=0xFF);if(--X3V8j4)goto -Mjvwg1;};s3sCI1(RdZoN,0120,0xFF);s3sCI1(RdZoN,0121,0xFF);s3sCI1(RdZoN -,0122,0);s3sCI1(RdZoN,0123,0xFF);s3sCI1(RdZoN,0124,0xFF);s3sCI1(RdZoN -,0125,0xFF);s3sCI1(RdZoN,0126,0xFF);s3sCI1(RdZoN,0127,0xFF);X3V8j4=32 -;{pY_pO3:{s3sCI1(RdZoN,0140+X3V8j4-01,J7Iki4->jyElQ3[01][X3V8j4-1]= -J7Iki4->v6D2d3[0x1].mHM361[X3V8j4-01]=0xD5);s3sCI1(RdZoN,128+X3V8j4-1 -,0xFF);}if(--X3V8j4)goto pY_pO3;};Rqv1w3(RdZoN,042,J7Iki4->v6D2d3[01] -.wGgJV2=0x3);Rqv1w3(RdZoN,0xa0,J7Iki4->v6D2d3[1].x8DWY2=~0ul);Rqv1w3( -RdZoN,0xa4,J7Iki4->v6D2d3[01].oWLOw3=~0ul);};}static int WQjAp4( -kWMzp1*J7Iki4,QDNE6*a02Gz4,DCf0T2*esWTk2){{if(!(a02Gz4->QvZLK&64u))goto -JTNVO4;{{if(!(a02Gz4->NpyOc1.gMQg82.b9Zs_!=(-01)&&a02Gz4->NpyOc1. -gMQg82.b9Zs_>1))goto WSRoN2;{return 0;}WSRoN2:;}{if(!(J7Iki4->SP4ZU -==02&&a02Gz4->NpyOc1.gMQg82.b9Zs_>0))goto IaVcT1;{return 0;}IaVcT1:; -}{if(!(!Mrgr62(a02Gz4->NpyOc1.gMQg82.sxr445,a02Gz4->NpyOc1.gMQg82. -W0jOn2,&esWTk2->tQcig.C6yEr1)))goto yHbGG2;{return 0;}yHbGG2:;} -esWTk2->tQcig.G15W41=0;{if(!(a02Gz4->NpyOc1.gMQg82.b9Zs_==(-1)|| -a02Gz4->NpyOc1.gMQg82.b9Zs_==0))goto FXKBx;{esWTk2->tQcig.G15W41|= -eKIU_4<<0;{if(!((a02Gz4->NpyOc1.gMQg82.sxr445&15ul)!=(0ul<<0)))goto -hNST_;{{if(!((J7Iki4->iO1iw4[0]&017ul)==(0ul<<0)))goto fP14O1;esWTk2 -->tQcig.G15W41|=(D1OxN4|p9baI3|KZp71|KZEMj4)<<0;fP14O1:;}{if(!((( -a02Gz4->NpyOc1.gMQg82.sxr445&017ul)==(01ul<<0))!=((J7Iki4->iO1iw4[0]& -017ul)==(1ul<<0))))goto GB75W2;esWTk2->tQcig.G15W41|=(p9baI3|KZp71| -KZEMj4)<<0;GB75W2:;}{if(!(((a02Gz4->NpyOc1.gMQg82.sxr445&0360ul)<=( -5ul<<04))!=((J7Iki4->iO1iw4[0]&0360ul)<=(0x5ul<<4))))goto bXj363; -esWTk2->tQcig.G15W41|=(KZp71|KZEMj4)<<0;bXj363:;}{if(!((J7Iki4-> -iO1iw4[0]^a02Gz4->NpyOc1.gMQg82.sxr445)&(0360ul|268435456ul)))goto -fHk793;esWTk2->tQcig.G15W41|=KZEMj4<<0;fHk793:;}}goto zuLXp1;hNST_:;{ -esWTk2->tQcig.G15W41|=qS5lW1<<0;{if(!((J7Iki4->iO1iw4[0]&017ul)!=(0ul -<<0)))goto C2o6P2;esWTk2->tQcig.G15W41|=KZEMj4<<0;C2o6P2:;}}zuLXp1:;} -}FXKBx:;};{if(!((a02Gz4->NpyOc1.gMQg82.b9Zs_==(-0x1)||a02Gz4->NpyOc1. -gMQg82.b9Zs_==01)&&J7Iki4->SP4ZU!=0x2))goto pZGsj4;{esWTk2->tQcig. -G15W41|=eKIU_4<<01;{if(!((a02Gz4->NpyOc1.gMQg82.sxr445&017ul)!=(0ul<< -0)))goto K68ek2;{{if(!((J7Iki4->iO1iw4[1]&017ul)==(0ul<<0)))goto -wt21n2;esWTk2->tQcig.G15W41|=(D1OxN4|p9baI3|KZp71|KZEMj4)<<0x1;wt21n2 -:;}{if(!(((a02Gz4->NpyOc1.gMQg82.sxr445&017ul)==(0x1ul<<0))!=((J7Iki4 -->iO1iw4[0x1]&017ul)==(0x1ul<<0))))goto H0_uV3;esWTk2->tQcig.G15W41|= -(p9baI3|KZp71|KZEMj4)<<01;H0_uV3:;}{if(!(((a02Gz4->NpyOc1.gMQg82. -sxr445&240ul)<=(5ul<<04))!=((J7Iki4->iO1iw4[01]&0360ul)<=(05ul<<0x4))))goto -QoVg22;esWTk2->tQcig.G15W41|=(KZp71|KZEMj4)<<01;QoVg22:;}{if(!(( -J7Iki4->iO1iw4[0x1]^a02Gz4->NpyOc1.gMQg82.sxr445)&(240ul|268435456ul)))goto -_4TDD3;esWTk2->tQcig.G15W41|=KZEMj4<<0x1;_4TDD3:;}}goto YmLEh1;K68ek2 -:;{esWTk2->tQcig.G15W41|=qS5lW1<<1;{if(!((J7Iki4->iO1iw4[0x1]&15ul)!= -(0ul<<0)))goto L9_Ft4;esWTk2->tQcig.G15W41|=KZEMj4<<01;L9_Ft4:;}} -YmLEh1:;}}pZGsj4:;};}JTNVO4:;}return 0x1;}static int xnb4g3(kWMzp1* -J7Iki4,QDNE6*a02Gz4,DCf0T2*esWTk2){{if(!(a02Gz4->QvZLK&64u))goto pqgzS -;{volatile unsigned long*RdZoN;unsigned wxJA11=WqCeB2(J7Iki4);J7Iki4 -->YRHFy->U6oXn4=wxJA11&(16|32);RdZoN=&J7Iki4->fV7o35->UyRVB4;{if(!( -esWTk2->tQcig.G15W41&(eKIU_4<<0)))goto ZrWoW;{unsigned char TIQMZ1;{ -if(!(J7Iki4->v6D2d3[0].E7Ual2!=esWTk2->tQcig.C6yEr1.E7Ual2))goto -OhLOH1;BucKo(RdZoN,0x14,J7Iki4->v6D2d3[0].E7Ual2=esWTk2->tQcig.C6yEr1 -.E7Ual2);OhLOH1:;}{if(!(J7Iki4->v6D2d3[0].W4f921!=esWTk2->tQcig. -C6yEr1.W4f921))goto ymo3m3;BucKo(RdZoN,032,J7Iki4->v6D2d3[0].W4f921= -esWTk2->tQcig.C6yEr1.W4f921);ymo3m3:;}{if(!(J7Iki4->v6D2d3[0].kgEeY3 -!=esWTk2->tQcig.C6yEr1.kgEeY3))goto UE8_33;BucKo(RdZoN,27,J7Iki4-> -v6D2d3[0].kgEeY3=esWTk2->tQcig.C6yEr1.kgEeY3);UE8_33:;}{if(!(J7Iki4-> -v6D2d3[0]._Oqi51!=esWTk2->tQcig.C6yEr1._Oqi51))goto MolGF4;BucKo( -RdZoN,0xa8,J7Iki4->v6D2d3[0]._Oqi51=esWTk2->tQcig.C6yEr1._Oqi51); -MolGF4:;}{if(!(J7Iki4->v6D2d3[0].x2RgK4!=esWTk2->tQcig.C6yEr1.x2RgK4))goto -hlex91;{J7Iki4->v6D2d3[0].x2RgK4=esWTk2->tQcig.C6yEr1.x2RgK4;{if(!( -wxJA11&((0==0)?16:32)))goto Sf2Nz2;BucKo(RdZoN,24,esWTk2->tQcig. -C6yEr1.x2RgK4|0140);goto arIPi2;Sf2Nz2:;BucKo(RdZoN,24,esWTk2->tQcig. -C6yEr1.x2RgK4|64);arIPi2:;}}hlex91:;}{if(!(J7Iki4->v6D2d3[0].PBtXm1!= -esWTk2->tQcig.C6yEr1.PBtXm1))goto MOWyU;BucKo(RdZoN,18,J7Iki4->v6D2d3 -[0].PBtXm1=esWTk2->tQcig.C6yEr1.PBtXm1);MOWyU:;}TIQMZ1=esWTk2->tQcig. -C6yEr1.TIQMZ1;{if(!(J7Iki4->v6D2d3[0].TIQMZ1!=TIQMZ1))goto genw44; -BucKo(RdZoN,0x13,J7Iki4->v6D2d3[0].TIQMZ1=TIQMZ1);genw44:;}{if(!( -J7Iki4->v6D2d3[0].AuCs73!=esWTk2->tQcig.C6yEr1.AuCs73))goto htb7t1; -BucKo(RdZoN,16,J7Iki4->v6D2d3[0].AuCs73=esWTk2->tQcig.C6yEr1.AuCs73); -htb7t1:;}{if(!(J7Iki4->v6D2d3[0].DDAs81!=esWTk2->tQcig.C6yEr1.DDAs81))goto -F6RDd1;BucKo(RdZoN,0xac,J7Iki4->v6D2d3[0].DDAs81=esWTk2->tQcig.C6yEr1 -.DDAs81);F6RDd1:;}{if(!(J7Iki4->v6D2d3[0].VPJzO1!=esWTk2->tQcig. -C6yEr1.VPJzO1))goto mKdeB4;BucKo(RdZoN,0x1c,J7Iki4->v6D2d3[0].VPJzO1= -esWTk2->tQcig.C6yEr1.VPJzO1);mKdeB4:;}{if(!(J7Iki4->v6D2d3[0].JhCor3 -!=esWTk2->tQcig.C6yEr1.JhCor3||J7Iki4->v6D2d3[0].aW7n84!=esWTk2-> -tQcig.C6yEr1.aW7n84))goto tCLvR2;{unsigned long HqVZe4=J7Iki4->v6D2d3 -[0^0x1].aW7n84&~esWTk2->tQcig.C6yEr1.aW7n84;{if(!(J7Iki4->v6D2d3[0^1] -.aW7n84!=HqVZe4))goto KK2Co3;{{if(!(0))goto I4v7x;HcALQ1(RdZoN,053, -J7Iki4->v6D2d3[0].aW7n84=HqVZe4);goto YZhJh1;I4v7x:;Rqv1w3(RdZoN,0x2b -,J7Iki4->v6D2d3[1].aW7n84=HqVZe4);YZhJh1:;}}KK2Co3:;}HcALQ1(RdZoN, -0x2b,J7Iki4->v6D2d3[0].aW7n84=esWTk2->tQcig.C6yEr1.aW7n84);AUUSL3( -RdZoN,(0==0)?011:012,32|(J7Iki4->v6D2d3[0].JhCor3=esWTk2->tQcig. -C6yEr1.JhCor3));}tCLvR2:;}{if(!((a02Gz4->NpyOc1.gMQg82.sxr445&15ul)!= -(0ul<<0)))goto D8urj;{J7Iki4->iO1iw4[0]=a02Gz4->NpyOc1.gMQg82.sxr445; -{if(!(J7Iki4->v6D2d3[0].Q1iXV3!=esWTk2->tQcig.C6yEr1.Q1iXV3||J7Iki4-> -v6D2d3[0].DvwSz1!=esWTk2->tQcig.C6yEr1.DvwSz1))goto ptE8v1;esWTk2-> -tQcig.G15W41|=D1OxN4<<0;ptE8v1:;}}goto eInjq4;D8urj:;J7Iki4->iO1iw4[0 -]=0;eInjq4:;}}ZrWoW:;};{if(!(esWTk2->tQcig.G15W41&(eKIU_4<<1)))goto -Zivk01;{unsigned char TIQMZ1;{if(!(J7Iki4->v6D2d3[01].E7Ual2!=esWTk2 -->tQcig.C6yEr1.E7Ual2))goto Hsu3K;s3sCI1(RdZoN,0x14,J7Iki4->v6D2d3[1] -.E7Ual2=esWTk2->tQcig.C6yEr1.E7Ual2);Hsu3K:;}{if(!(J7Iki4->v6D2d3[01] -.W4f921!=esWTk2->tQcig.C6yEr1.W4f921))goto O7FoQ2;s3sCI1(RdZoN,0x1a, -J7Iki4->v6D2d3[01].W4f921=esWTk2->tQcig.C6yEr1.W4f921);O7FoQ2:;}{if(! -(J7Iki4->v6D2d3[0x1].kgEeY3!=esWTk2->tQcig.C6yEr1.kgEeY3))goto FyrG42 -;s3sCI1(RdZoN,27,J7Iki4->v6D2d3[0x1].kgEeY3=esWTk2->tQcig.C6yEr1. -kgEeY3);FyrG42:;}{if(!(J7Iki4->v6D2d3[1]._Oqi51!=esWTk2->tQcig.C6yEr1 -._Oqi51))goto S5BnT3;s3sCI1(RdZoN,0xa8,J7Iki4->v6D2d3[0x1]._Oqi51= -esWTk2->tQcig.C6yEr1._Oqi51);S5BnT3:;}{if(!(J7Iki4->v6D2d3[0x1]. -x2RgK4!=esWTk2->tQcig.C6yEr1.x2RgK4))goto lMnNL4;{J7Iki4->v6D2d3[1]. -x2RgK4=esWTk2->tQcig.C6yEr1.x2RgK4;{if(!(wxJA11&((1==0)?16:32)))goto -T3pdh4;s3sCI1(RdZoN,24,esWTk2->tQcig.C6yEr1.x2RgK4|96);goto LTuqB; -T3pdh4:;s3sCI1(RdZoN,24,esWTk2->tQcig.C6yEr1.x2RgK4|64);LTuqB:;}} -lMnNL4:;}{if(!(J7Iki4->v6D2d3[1].PBtXm1!=esWTk2->tQcig.C6yEr1.PBtXm1))goto -Ww0fR;s3sCI1(RdZoN,18,J7Iki4->v6D2d3[0x1].PBtXm1=esWTk2->tQcig.C6yEr1 -.PBtXm1);Ww0fR:;}TIQMZ1=esWTk2->tQcig.C6yEr1.TIQMZ1;{if(!(J7Iki4-> -v6D2d3[1].TIQMZ1!=TIQMZ1))goto GoBcS3;s3sCI1(RdZoN,0x13,J7Iki4-> -v6D2d3[1].TIQMZ1=TIQMZ1);GoBcS3:;}{if(!(J7Iki4->v6D2d3[01].AuCs73!= -esWTk2->tQcig.C6yEr1.AuCs73))goto lsprh3;s3sCI1(RdZoN,16,J7Iki4-> -v6D2d3[01].AuCs73=esWTk2->tQcig.C6yEr1.AuCs73);lsprh3:;}{if(!(J7Iki4 -->v6D2d3[01].DDAs81!=esWTk2->tQcig.C6yEr1.DDAs81))goto jvOaW3;s3sCI1( -RdZoN,0xac,J7Iki4->v6D2d3[0x1].DDAs81=esWTk2->tQcig.C6yEr1.DDAs81); -jvOaW3:;}{if(!(J7Iki4->v6D2d3[01].VPJzO1!=esWTk2->tQcig.C6yEr1.VPJzO1 -))goto bQzJ53;s3sCI1(RdZoN,0x1c,J7Iki4->v6D2d3[0x1].VPJzO1=esWTk2-> -tQcig.C6yEr1.VPJzO1);bQzJ53:;}{if(!(J7Iki4->v6D2d3[0x1].JhCor3!= -esWTk2->tQcig.C6yEr1.JhCor3||J7Iki4->v6D2d3[0x1].aW7n84!=esWTk2-> -tQcig.C6yEr1.aW7n84))goto gupXH4;{unsigned long HqVZe4=J7Iki4->v6D2d3 -[0x1^1].aW7n84&~esWTk2->tQcig.C6yEr1.aW7n84;{if(!(J7Iki4->v6D2d3[1^01 -].aW7n84!=HqVZe4))goto ceu0u1;{{if(!(0x1))goto KWBsP3;HcALQ1(RdZoN, -0x2b,J7Iki4->v6D2d3[0].aW7n84=HqVZe4);goto oLXWQ;KWBsP3:;Rqv1w3(RdZoN -,0x2b,J7Iki4->v6D2d3[0x1].aW7n84=HqVZe4);oLXWQ:;}}ceu0u1:;}Rqv1w3( -RdZoN,43,J7Iki4->v6D2d3[0x1].aW7n84=esWTk2->tQcig.C6yEr1.aW7n84); -AUUSL3(RdZoN,(0x1==0)?011:012,32|(J7Iki4->v6D2d3[0x1].JhCor3=esWTk2-> -tQcig.C6yEr1.JhCor3));}gupXH4:;}{if(!((a02Gz4->NpyOc1.gMQg82.sxr445& -017ul)!=(0ul<<0)))goto wdOKk3;{J7Iki4->iO1iw4[1]=a02Gz4->NpyOc1. -gMQg82.sxr445;{if(!(J7Iki4->v6D2d3[01].Q1iXV3!=esWTk2->tQcig.C6yEr1. -Q1iXV3||J7Iki4->v6D2d3[01].DvwSz1!=esWTk2->tQcig.C6yEr1.DvwSz1))goto -XZr4o3;esWTk2->tQcig.G15W41|=D1OxN4<<1;XZr4o3:;}}goto jCzA04;wdOKk3:; -J7Iki4->iO1iw4[01]=0;jCzA04:;}}Zivk01:;};{if(!(esWTk2->tQcig.G15W41&( -(eKIU_4<<0)|(eKIU_4<<1))))goto uviEm2;{esWTk2->tQcig.G15W41&=~(( -eKIU_4<<0)|(eKIU_4<<0x1));GLE_s4(J7Iki4,(-0x1));}uviEm2:;}{if(!( -esWTk2->tQcig.G15W41&(qS5lW1<<0)))goto Q8GeB3;{BucKo(RdZoN,026,0); -BucKo(RdZoN,0x17,0);AErNL3(J7Iki4);}Q8GeB3:;}{if(!(esWTk2->tQcig. -G15W41&(qS5lW1<<01)))goto ryhmm;{s3sCI1(RdZoN,026,0);s3sCI1(RdZoN, -0x17,0);tsz3n4(J7Iki4);}ryhmm:;}esWTk2->tQcig.G15W41&=~((qS5lW1<<0)|( -qS5lW1<<01));{if(!(esWTk2->tQcig.G15W41&((vC4oo<<0)|(vC4oo<<0x1))))goto -BbsRp;{esWTk2->tQcig.G15W41&=~((vC4oo<<0)|(vC4oo<<0x1));pxiAh4( -J7Iki4,esWTk2,04);return 01;}BbsRp:;}{if(!(esWTk2->tQcig.G15W41&( -CeDcj3<<0)))goto Y_ymu;{BucKo(RdZoN,0xaa,0);BucKo(RdZoN,0x1d,0); -BucKo(RdZoN,0xaa,128);BucKo(RdZoN,0x1d,0x2|1);}Y_ymu:;}{if(!(esWTk2-> -tQcig.G15W41&(CeDcj3<<0x1)))goto ODyYT;{s3sCI1(RdZoN,0xaa,0);s3sCI1( -RdZoN,29,0);s3sCI1(RdZoN,0xaa,128);s3sCI1(RdZoN,0x1d,02|01);}ODyYT:;} -{if(!(esWTk2->tQcig.G15W41&((CeDcj3<<0)|(CeDcj3<<0x1))))goto SAgXh1;{ -esWTk2->tQcig.G15W41&=~((CeDcj3<<0)|(CeDcj3<<0x1));pxiAh4(J7Iki4, -esWTk2,16*0x4);return 01;}SAgXh1:;}{if(!(esWTk2->tQcig.G15W41&(zJyAP1 -<<0)))goto fGWWi1;{BucKo(RdZoN,0xaa,0);BucKo(RdZoN,29,0);}fGWWi1:;}{ -if(!(esWTk2->tQcig.G15W41&(zJyAP1<<0x1)))goto aLsUC;{s3sCI1(RdZoN, -0xaa,0);s3sCI1(RdZoN,0x1d,0);}aLsUC:;}{if(!(esWTk2->tQcig.G15W41&(( -zJyAP1<<0)|(zJyAP1<<01))))goto mQ8yF3;{esWTk2->tQcig.G15W41&=~(( -zJyAP1<<0)|(zJyAP1<<1));pxiAh4(J7Iki4,esWTk2,16*4);return 0x1;} -mQ8yF3:;}{if(!(esWTk2->tQcig.G15W41&(KZp71<<0)))goto XcyvD;{BucKo( -RdZoN,0xaa,0);BucKo(RdZoN,0xaa,64|32);BucKo(RdZoN,16,J7Iki4->v6D2d3[0 -].AuCs73|1);BucKo(RdZoN,0xaa,0);BucKo(RdZoN,16,J7Iki4->v6D2d3[0]. -AuCs73);}XcyvD:;}{if(!(esWTk2->tQcig.G15W41&(KZp71<<1)))goto qvoJV3;{ -;s3sCI1(RdZoN,0xaa,0);s3sCI1(RdZoN,0xaa,64|32);s3sCI1(RdZoN,16,J7Iki4 -->v6D2d3[0x1].AuCs73|0x1);s3sCI1(RdZoN,0xaa,0);s3sCI1(RdZoN,16,J7Iki4 -->v6D2d3[01].AuCs73);}qvoJV3:;}{if(!(esWTk2->tQcig.G15W41&((KZp71<<0)| -(KZp71<<01))))goto ue27A3;{esWTk2->tQcig.G15W41&=~((KZp71<<0)|(KZp71 -<<01));pxiAh4(J7Iki4,esWTk2,16*04);return 1;}ue27A3:;}{if(!(esWTk2-> -tQcig.G15W41&(KZEMj4<<0)))goto ilsQH;{dMM0e1(RdZoN,6);dMM0e1(RdZoN, -0x7);dMM0e1(RdZoN,0x8);J7Iki4->YRHFy->io7IZ3[0].H4ghS2=J7Iki4->oXafA1 -[0].H4ghS2=0;cYVI15(0u,J7Iki4->hRUi43[0][0u]);cYVI15(02u,J7Iki4-> -hRUi43[0][2u]);}ilsQH:;}{if(!(esWTk2->tQcig.G15W41&(KZEMj4<<01)))goto -RwWZN;{NHDsK3(RdZoN,0x6);NHDsK3(RdZoN,0x7);NHDsK3(RdZoN,8);J7Iki4-> -YRHFy->io7IZ3[1].H4ghS2=J7Iki4->oXafA1[01].H4ghS2=0;cYVI15(0u,J7Iki4 -->hRUi43[0x1][0u]);cYVI15(02u,J7Iki4->hRUi43[0x1][0x2u]);}RwWZN:;}{if -(!(esWTk2->tQcig.G15W41&(D1OxN4<<0)))goto ft5w45;{BucKo(RdZoN,0x16, -J7Iki4->v6D2d3[0].Q1iXV3=esWTk2->tQcig.C6yEr1.Q1iXV3);BucKo(RdZoN,23, -J7Iki4->v6D2d3[0].DvwSz1=esWTk2->tQcig.C6yEr1.DvwSz1);}ft5w45:;}{if(! -(esWTk2->tQcig.G15W41&(D1OxN4<<1)))goto tgTLB4;{s3sCI1(RdZoN,026, -J7Iki4->v6D2d3[01].Q1iXV3=esWTk2->tQcig.C6yEr1.Q1iXV3);s3sCI1(RdZoN, -027,J7Iki4->v6D2d3[0x1].DvwSz1=esWTk2->tQcig.C6yEr1.DvwSz1);}tgTLB4:; -}{if(!(esWTk2->tQcig.G15W41&((KZEMj4<<0)|(KZEMj4<<0x1)|(D1OxN4<<0)|( -D1OxN4<<0x1))))goto khgda1;{GLE_s4(J7Iki4,(-1));w_2xo4(J7Iki4);esWTk2 -->tQcig.G15W41&=~((KZEMj4<<0)|(KZEMj4<<1)|(D1OxN4<<0)|(D1OxN4<<1));} -khgda1:;}{if(!(esWTk2->tQcig.G15W41==0))goto Y_niG4;{a02Gz4->QvZLK&=~ -64u;}Y_niG4:;}}pqgzS:;}return 0;}unsigned long __attribute__((cdecl))TAU32_Diag -(kWMzp1*J7Iki4,unsigned Smebz2,unsigned long a0Zcs){volatile unsigned -long*RdZoN;unsigned long qwUGv3=0;h2LrH3(&J7Iki4->h2LrH3);RdZoN=& -J7Iki4->fV7o35->UyRVB4;switch(Smebz2){case 01:((RdZoN)[-1])=0;((RdZoN -)[0])=0xFFFF;((RdZoN)[-1])=224;((RdZoN)[-01])=0;case 0:qwUGv3=((( -RdZoN)[0])&0xFFFF)|(((RdZoN)[-0x1])<<16);break;case 02:((RdZoN)[-1])= -a0Zcs>>16;((RdZoN)[0])=a0Zcs&0xFFFF;qwUGv3=((RdZoN)[0]);break;case 0x3 -:((RdZoN)[0])=a0Zcs&0xFFFF;((RdZoN)[-1])=a0Zcs>>16;qwUGv3=((RdZoN)[0] -);break;case 0x5:AUUSL3(RdZoN,(a0Zcs>>16)&0xFF,(a0Zcs>>0x8)&0xFF); -break;case 0x6:AUUSL3(RdZoN,(a0Zcs>>16)&0xFF,(a0Zcs>>8)&0xFF);case 04 -:qwUGv3=RtiEy4(RdZoN,(a0Zcs>>16)&0xFF)<<010;break;case 0x7:AUUSL3( -RdZoN,(a0Zcs>>16)&0xFF,(a0Zcs>>8)&0xFF);qwUGv3=RtiEy4(RdZoN,0x5); -break;case 010:AUUSL3(RdZoN,(a0Zcs>>16)&0xFF,(a0Zcs>>8)&0xFF);AUUSL3( -RdZoN,0x5,a0Zcs&0xFF);break;case 011:AUUSL3(RdZoN,(a0Zcs>>16)&0xFF,( -a0Zcs>>010)&0xFF);qwUGv3=RtiEy4(RdZoN,05);AUUSL3(RdZoN,(a0Zcs>>16)& -0xFF,(a0Zcs>>0x8)&0xFF);AUUSL3(RdZoN,0x5,a0Zcs&0xFF);break;case 012: -AUUSL3(RdZoN,(a0Zcs>>16)&0xFF,(a0Zcs>>8)&0xFF);AUUSL3(RdZoN,0x5,a0Zcs -&0xFF);AUUSL3(RdZoN,(a0Zcs>>16)&0xFF,(a0Zcs>>0x8)&0xFF);qwUGv3=RtiEy4 -(RdZoN,05);break;case 013:AUUSL3(RdZoN,(a0Zcs>>16)&0xFF,(a0Zcs>>8)& -0xFF);AUUSL3(RdZoN,5,a0Zcs&0xFF);AUUSL3(RdZoN,(a0Zcs>>16)&0xFF,(a0Zcs ->>0x8)&0xFF);qwUGv3=RtiEy4(RdZoN,5);AUUSL3(RdZoN,(a0Zcs>>16)&0xFF,( -a0Zcs>>0x8)&0xFF);AUUSL3(RdZoN,05,qwUGv3&a0Zcs&0xFF);break;case 014:{ -if(!(a0Zcs>2097151999ul))goto bZsbt1;qwUGv3=~0ul;goto NQD_Y1;bZsbt1:; -{unsigned long T8Tg75=a0Zcs;__asm __volatile("mul %2;" -"add $2147483648, %0;" "adc $0, %1":"=a"(T8Tg75),"=d"(qwUGv3):"r"( -01422335136ul),"0"(T8Tg75));qwUGv3+=a0Zcs+a0Zcs;}NQD_Y1:;}LzuvP2( -RdZoN,qwUGv3);AUUSL3(RdZoN,0,J7Iki4->GEt0d=(J7Iki4->GEt0d&~043)|32); -break;}uYS5N2(&J7Iki4->h2LrH3);return qwUGv3;}int __attribute__(( -cdecl))TAU32_SetSaCross(kWMzp1*J7Iki4,Drk7M4 Uwhrn4){unsigned char -f2E883=0;{if(!(Uwhrn4.CCKdO2>04u||Uwhrn4.HZ1wC3>04u))goto scDVj2; -return 0;scDVj2:;}{if(!(!Uwhrn4.XmIKi3&&(Uwhrn4.CCKdO2==1u||Uwhrn4. -HZ1wC3==01u)))goto dS8884;return 0;dS8884:;}{if(!(J7Iki4->SP4ZU==0x2))goto -Ksejb1;{if(!(Uwhrn4.CCKdO2==3u||Uwhrn4.HZ1wC3!=0u))goto E8X83;return 0 -;E8X83:;}Ksejb1:;}{if(!(Uwhrn4.XmIKi3))goto O1Tns4;f2E883|=64;O1Tns4: -;}{if(!(Uwhrn4.CCKdO2))goto rXxhw3;f2E883|=16|((Uwhrn4.CCKdO2-01)<<0); -rXxhw3:;}{if(!(Uwhrn4.HZ1wC3))goto nVDTK2;f2E883|=32|((Uwhrn4.HZ1wC3- -01)<<2);nVDTK2:;}{if(!(f2E883!=J7Iki4->HtJEJ))goto stLrO1;{volatile -unsigned long*RdZoN;h2LrH3(&J7Iki4->h2LrH3);RdZoN=&J7Iki4->fV7o35-> -UyRVB4;AUUSL3(RdZoN,8,J7Iki4->HtJEJ=f2E883);GLE_s4(J7Iki4,(-0x1)); -uYS5N2(&J7Iki4->h2LrH3);}stLrO1:;}return 1;}static const unsigned long -oSrkU4[32]={01u<<0,01u<<0x2,1u<<4,1u<<0x6,01u<<010,01u<<012,1u<<12, -01u<<016,1u<<16,0x1u<<0x12,01u<<024,0x1u<<0x16,1u<<0x18,01u<<26,1u<< -0x1c,1u<<0x1e,1u<<0x1,01u<<0x3,1u<<5,1u<<0x7,01u<<011,01u<<013,0x1u<< -13,01u<<017,1u<<17,0x1u<<0x13,01u<<025,1u<<23,0x1u<<031,0x1u<<27,0x1u -<<035,0x1u<<037};__noinline static void GLE_s4(kWMzp1*J7Iki4,int NNm8q -){unsigned long k6bCf4[02],pGYUX1[2],M782F4[0x2];unsigned long uXZM21 -,bpv453;int FNU7M3;unsigned CUmDv[0x2];CUmDv[0]=J7Iki4->oXafA1[0]. -H4ghS2;{if(!((J7Iki4->iO1iw4[0]&017ul)==(0x1ul<<0)))goto NMePf2;CUmDv -[0]&=~0x1u;NMePf2:;}CUmDv[0x1]=J7Iki4->oXafA1[0x1].H4ghS2;{if(!(( -J7Iki4->iO1iw4[1]&017ul)==(0x1ul<<0)))goto g6I792;CUmDv[1]&=~0x1u; -g6I792:;}k6bCf4[0]=k6bCf4[0x1]=3;pGYUX1[0]=pGYUX1[1]=0;M782F4[0]= -M782F4[1]=0;uXZM21=J7Iki4->v6D2d3[0].aW7n84|J7Iki4->v6D2d3[1].aW7n84; -bpv453=0;FNU7M3=31;{baWV_:{if(!(!J7Iki4->Rc7LY4.ZKJvS1[FNU7M3].V9ej93 -.iGfEm1))goto uC7LN2;{unsigned rNKzp2=J7Iki4->Rc7LY4.ZKJvS1[FNU7M3]. -V9ej93.dQ5DX;{if(!(J7Iki4->nvFyD4[rNKzp2]&&(J7Iki4->ZWSDs2.X_sGC1&( -0x1u<=0)goto baWV_;};FNU7M3=037;{XtsC:{unsigned long Bvuqc2=0x1u -<v6D2d3[0].JhCor3&16)==0))goto rcbUq3;{if(!( -NNm8q==(-0x1)||NNm8q==0))goto bskGf2;{unsigned char XT1xI3,sxdur; -unsigned xRh664;volatile unsigned long*RdZoN;{if(!(FNU7M3==0&&(J7Iki4 -->iO1iw4[0]&0360ul)>(5ul<<04)))goto TTn4I3;goto _3uXJ1;TTn4I3:;}{if(! -(FNU7M3==16&&(J7Iki4->iO1iw4[0]&240ul)>(06ul<<4)))goto Lxstn;goto -_3uXJ1;Lxstn:;}XT1xI3=0xFFu;sxdur=J7Iki4->jyElQ3[0][FNU7M3];xRh664= -J7Iki4->veMrO[FNU7M3+32* (0+0x1)]&127;{if(!(xRh664==127u))goto G9xz03 -;{k6bCf4[0]|=oSrkU4[FNU7M3];M782F4[0]|=Bvuqc2;}goto JpR8F1;G9xz03:;{ -if(!(xRh664<32))goto mYgJ61;{{if(!(!(bpv453&(1ul<iO1iw4[0]&240ul)>=(0x8ul<<0x4)&&(!(bpv453&( -0x1u<<16))||(uXZM21&(01u<<16))!=0)))goto bJIQf2;{XT1xI3=0xFFu;k6bCf4[ -0]|=oSrkU4[FNU7M3];}bJIQf2:;}}goto Lm1jn;mYgJ61:;{if(!(xRh664<64))goto -lX9V74;{{if(!((J7Iki4->v6D2d3[0].JhCor3&16)!=0||(J7Iki4->oXafA1[0]. -H4ghS2&(01u|1024u|32768u))))goto iMrKM1;{XT1xI3=0xFFu;sxdur=0xFFu; -k6bCf4[0]|=oSrkU4[FNU7M3];pGYUX1[0]|=Bvuqc2;}goto yZBWm3;iMrKM1:;{if( -!((J7Iki4->oXafA1[0].H4ghS2&((01u|1024u|32768u)|16u|4096u))&&(J7Iki4 -->iO1iw4[0]&4096ul)==0))goto NY8VK3;{XT1xI3=0xFFu;k6bCf4[0]|=oSrkU4[ -FNU7M3];}NY8VK3:;}yZBWm3:;}}goto LxT2Y4;lX9V74:;{{if(!((J7Iki4-> -v6D2d3[01].JhCor3&16)!=0||(J7Iki4->oXafA1[1].H4ghS2&(0x1u|1024u| -32768u))))goto _A9MD3;{XT1xI3=0xFFu;sxdur=0xFFu;k6bCf4[0]|=oSrkU4[ -FNU7M3];pGYUX1[0]|=Bvuqc2;}goto hqqA05;_A9MD3:;{if(!((J7Iki4->oXafA1[ -0x1].H4ghS2&((01u|1024u|32768u)|16u|4096u))&&(J7Iki4->iO1iw4[0x1]& -4096ul)==0))goto ABEyi1;{XT1xI3=0xFFu;k6bCf4[0]|=oSrkU4[FNU7M3];} -ABEyi1:;}hqqA05:;}}LxT2Y4:;}Lm1jn:;}JpR8F1:;}RdZoN=&J7Iki4->fV7o35-> -UyRVB4;{if(!(FNU7M3&017u))goto xP2Rg3;{{if(!(FNU7M3<16))goto tIraz1;{ -XT1xI3=(J7Iki4->v6D2d3[0].FNU7M3[FNU7M3]&0xF0u)|(XT1xI3&017u);{if(!( -J7Iki4->v6D2d3[0].FNU7M3[FNU7M3]!=XT1xI3))goto HepqV3;BucKo(RdZoN,64+ -FNU7M3,J7Iki4->v6D2d3[0].FNU7M3[FNU7M3]=XT1xI3);HepqV3:;}}goto EPvtH; -tIraz1:;{XT1xI3=(J7Iki4->v6D2d3[0].FNU7M3[FNU7M3-16]&017u)|(XT1xI3& -0xF0u);{if(!(J7Iki4->v6D2d3[0].FNU7M3[FNU7M3-16]!=XT1xI3))goto Zjm4o4 -;BucKo(RdZoN,64+FNU7M3-16,J7Iki4->v6D2d3[0].FNU7M3[FNU7M3-16]=XT1xI3); -Zjm4o4:;}}EPvtH:;}}xP2Rg3:;}{if(!(sxdur!=J7Iki4->v6D2d3[0].mHM361[ -FNU7M3]))goto KDOPk2;BucKo(RdZoN,96+FNU7M3,J7Iki4->v6D2d3[0].mHM361[ -FNU7M3]=sxdur);KDOPk2:;}_3uXJ1:;}bskGf2:;}rcbUq3:;};{if(!(J7Iki4-> -SP4ZU!=0x2))goto rYEHN;{if(!((J7Iki4->v6D2d3[01].JhCor3&16)==0))goto -pfdlj4;{if(!(NNm8q==(-1)||NNm8q==0x1))goto CkBTP2;{unsigned char -XT1xI3,sxdur;unsigned xRh664;volatile unsigned long*RdZoN;{if(!( -FNU7M3==0&&(J7Iki4->iO1iw4[01]&240ul)>(05ul<<4)))goto sw3N93;goto -LOfuB;sw3N93:;}{if(!(FNU7M3==16&&(J7Iki4->iO1iw4[01]&240ul)>(06ul<<4)))goto -dEq9x4;goto LOfuB;dEq9x4:;}XT1xI3=0xFFu;sxdur=J7Iki4->jyElQ3[0x1][ -FNU7M3];xRh664=J7Iki4->veMrO[FNU7M3+32* (1+01)]&127;{if(!(xRh664== -127u))goto cCT_25;{k6bCf4[01]|=oSrkU4[FNU7M3];M782F4[0x1]|=Bvuqc2;} -goto BGrxq1;cCT_25:;{if(!(xRh664<32))goto mKvGg;{{if(!(!(bpv453&( -0x1ul<iO1iw4[0x1]&240ul -)>=(8ul<<4)&&(!(bpv453&(1u<<16))||(uXZM21&(01u<<16))!=0)))goto G_ORW2 -;{XT1xI3=0xFFu;k6bCf4[01]|=oSrkU4[FNU7M3];}G_ORW2:;}}goto IQmkM3; -mKvGg:;{if(!(xRh664<64))goto EpqFw4;{{if(!((J7Iki4->v6D2d3[0].JhCor3& -16)!=0||(J7Iki4->oXafA1[0].H4ghS2&(0x1u|1024u|32768u))))goto qFEoL;{ -XT1xI3=0xFFu;sxdur=0xFFu;k6bCf4[0x1]|=oSrkU4[FNU7M3];pGYUX1[01]|= -Bvuqc2;}goto o79Zu4;qFEoL:;{if(!((J7Iki4->oXafA1[0].H4ghS2&((01u| -1024u|32768u)|16u|4096u))&&(J7Iki4->iO1iw4[0]&4096ul)==0))goto PfBVS2 -;{XT1xI3=0xFFu;k6bCf4[0x1]|=oSrkU4[FNU7M3];}PfBVS2:;}o79Zu4:;}}goto -oR3jC2;EpqFw4:;{{if(!((J7Iki4->v6D2d3[0x1].JhCor3&16)!=0||(J7Iki4-> -oXafA1[0x1].H4ghS2&(01u|1024u|32768u))))goto qEhA12;{XT1xI3=0xFFu; -sxdur=0xFFu;k6bCf4[0x1]|=oSrkU4[FNU7M3];pGYUX1[0x1]|=Bvuqc2;}goto -hqEL_;qEhA12:;{if(!((J7Iki4->oXafA1[1].H4ghS2&((0x1u|1024u|32768u)| -16u|4096u))&&(J7Iki4->iO1iw4[0x1]&4096ul)==0))goto M9dD24;{XT1xI3= -0xFFu;k6bCf4[01]|=oSrkU4[FNU7M3];}M9dD24:;}hqEL_:;}}oR3jC2:;}IQmkM3:; -}BGrxq1:;}RdZoN=&J7Iki4->fV7o35->UyRVB4;{if(!(FNU7M3&017u))goto BRFyY2 -;{{if(!(FNU7M3<16))goto m6qun4;{XT1xI3=(J7Iki4->v6D2d3[0x1].FNU7M3[ -FNU7M3]&0xF0u)|(XT1xI3&017u);{if(!(J7Iki4->v6D2d3[1].FNU7M3[FNU7M3]!= -XT1xI3))goto sa9Wd4;s3sCI1(RdZoN,64+FNU7M3,J7Iki4->v6D2d3[1].FNU7M3[ -FNU7M3]=XT1xI3);sa9Wd4:;}}goto ORrU41;m6qun4:;{XT1xI3=(J7Iki4->v6D2d3 -[01].FNU7M3[FNU7M3-16]&017u)|(XT1xI3&0xF0u);{if(!(J7Iki4->v6D2d3[1]. -FNU7M3[FNU7M3-16]!=XT1xI3))goto Cb3U94;s3sCI1(RdZoN,64+FNU7M3-16, -J7Iki4->v6D2d3[0x1].FNU7M3[FNU7M3-16]=XT1xI3);Cb3U94:;}}ORrU41:;}} -BRFyY2:;}{if(!(sxdur!=J7Iki4->v6D2d3[0x1].mHM361[FNU7M3]))goto TG0CA; -s3sCI1(RdZoN,0140+FNU7M3,J7Iki4->v6D2d3[0x1].mHM361[FNU7M3]=sxdur); -TG0CA:;}LOfuB:;}CkBTP2:;}pfdlj4:;}rYEHN:;};}if(--FNU7M3>=0)goto XtsC; -};{if(!(NNm8q==(-0x1)||NNm8q==0))goto rqh6a2;{volatile unsigned long* -RdZoN;unsigned char PBtXm1,TIQMZ1,l9wtw1;unsigned long BDstt2,NmrSW4; -RdZoN=&J7Iki4->fV7o35->UyRVB4;{if(!(k6bCf4[0]!=J7Iki4->v6D2d3[0]. -wGgJV2))goto JNHsP4;HcALQ1(RdZoN,042,J7Iki4->v6D2d3[0].wGgJV2=k6bCf4[ -0]);JNHsP4:;}TIQMZ1=J7Iki4->v6D2d3[0].TIQMZ1&07u;{if(!(J7Iki4->HtJEJ& -((0==0)?16:32)))goto uDv1H1;{TIQMZ1|=0xF8u;switch((J7Iki4->HtJEJ>>((0 -==0)?0:02))&0x3){case 0x0:{if(!(!(J7Iki4->HtJEJ&64)||(uXZM21&(0x1u<<0 -))!=0||!(bpv453&(1u<<0))))goto iHF8s3;TIQMZ1&=0x7u;iHF8s3:;}break; -case 1:{if(!((J7Iki4->v6D2d3[0].JhCor3&16)!=0||(J7Iki4->oXafA1[0]. -H4ghS2&(0x1u|1024u|32768u))))goto Qjzun3;TIQMZ1&=07u;Qjzun3:;}break; -case 02:{if(!((J7Iki4->v6D2d3[0x1].JhCor3&16)!=0||(J7Iki4->oXafA1[1]. -H4ghS2&(01u|1024u|32768u))))goto aIFlj3;TIQMZ1&=07u;aIFlj3:;}break; -case 0x3:break;default:;}}uDv1H1:;}{if(!(J7Iki4->v6D2d3[0].TIQMZ1!= -TIQMZ1))goto n395L2;BucKo(RdZoN,023,J7Iki4->v6D2d3[0].TIQMZ1=TIQMZ1); -n395L2:;}PBtXm1=J7Iki4->v6D2d3[0].PBtXm1&~16;BDstt2=pGYUX1[0]|M782F4[ -0];{if(!(BDstt2!=J7Iki4->v6D2d3[0].x8DWY2))goto m5bfE2;HcALQ1(RdZoN, -0xa0,J7Iki4->v6D2d3[0].x8DWY2=BDstt2);m5bfE2:;}{if(!(J7Iki4->v6D2d3[0 -].JhCor3&16))goto FUHcS4;{{if(!((J7Iki4->v6D2d3[0].aW7n84&~bpv453)))goto -OzcmC4;PBtXm1|=16;goto Q9zdR1;OzcmC4:;{if(!((J7Iki4->iO1iw4[0]&8192ul -)&&(CUmDv[0]&01u)))goto HCntb3;PBtXm1|=16;HCntb3:;}Q9zdR1:;}}goto -z7rPl;FUHcS4:;{{if(!((J7Iki4->iO1iw4[0]&8192ul)&&(CUmDv[0]&(1u|1024u))))goto -EOiva3;PBtXm1|=16;goto wHGgP4;EOiva3:;{if(!(J7Iki4->iO1iw4[0]& -262144ul))goto AVbbz3;{unsigned long jwgpJ2=pGYUX1[0];{if(!((J7Iki4-> -iO1iw4[0]&240ul)>(06ul<<4)))goto AGHnT4;jwgpJ2|=65537ul;goto d0ozh3; -AGHnT4:;{if(!((J7Iki4->iO1iw4[0]&0360ul)>(5ul<<0x4)))goto b0zBt1; -jwgpJ2|=1ul;b0zBt1:;}d0ozh3:;}{if(!(jwgpJ2==0xFFFFFFFFul))goto CiD2k1 -;PBtXm1|=16;CiD2k1:;}}AVbbz3:;}wHGgP4:;}}z7rPl:;}{if(!((J7Iki4-> -iO1iw4[0]&15ul)==(4ul<<0)))goto DxnG43;PBtXm1|=16;DxnG43:;}{if(!( -J7Iki4->v6D2d3[0].PBtXm1!=PBtXm1))goto HyV8D2;BucKo(RdZoN,18,J7Iki4-> -v6D2d3[0].PBtXm1=PBtXm1);HyV8D2:;}NmrSW4=0;l9wtw1=J7Iki4->v6D2d3[0]. -FNU7M3[0];{if(!(CUmDv[0]&((0x1u|1024u|32768u)|16u|4096u)))goto cgV573 -;{l9wtw1|=04u;NmrSW4=0x1u<<16u;}goto THoFe2;cgV573:;l9wtw1&=~04u; -THoFe2:;}{if(!(J7Iki4->iO1iw4[0]&1048576ul))goto aOLhV;{l9wtw1&=~4u;{ -if(!(J7Iki4->iO1iw4[0]&4194304ul))goto lqIwU2;l9wtw1|=4u;lqIwU2:;}} -aOLhV:;}{if(!(J7Iki4->v6D2d3[0].FNU7M3[0]!=l9wtw1))goto lSniI2;BucKo( -RdZoN,64,J7Iki4->v6D2d3[0].FNU7M3[0]=l9wtw1);lSniI2:;}{if(!(J7Iki4-> -iO1iw4[0]&524288ul))goto Ueefz1;{unsigned char jf4g9=J7Iki4->v6D2d3[0 -].jf4g9&~32;{if(!(J7Iki4->iO1iw4[0]&2097152ul))goto BTZCK4;jf4g9|=32u -;BTZCK4:;}{if(!(jf4g9!=J7Iki4->v6D2d3[0].jf4g9))goto FJ5s9;BucKo( -RdZoN,0x21,J7Iki4->v6D2d3[0].jf4g9=jf4g9);FJ5s9:;}}Ueefz1:;}{if(!( -CUmDv[0]&(01u|1024u|32768u)))goto SKVej1;NmrSW4=0xFFFFFFFFul;SKVej1:; -}{if(!(NmrSW4!=J7Iki4->v6D2d3[0].oWLOw3))goto bWMg15;HcALQ1(RdZoN, -0xa4,J7Iki4->v6D2d3[0].oWLOw3=NmrSW4);bWMg15:;}}rqh6a2:;};{if(!( -J7Iki4->SP4ZU!=02))goto Ej8DZ3;{if(!(NNm8q==(-0x1)||NNm8q==1))goto -OzDgd;{volatile unsigned long*RdZoN;unsigned char PBtXm1,TIQMZ1, -l9wtw1;unsigned long BDstt2,NmrSW4;RdZoN=&J7Iki4->fV7o35->UyRVB4;{if( -!(k6bCf4[01]!=J7Iki4->v6D2d3[1].wGgJV2))goto qRHWB3;Rqv1w3(RdZoN,042, -J7Iki4->v6D2d3[1].wGgJV2=k6bCf4[01]);qRHWB3:;}TIQMZ1=J7Iki4->v6D2d3[ -01].TIQMZ1&7u;{if(!(J7Iki4->HtJEJ&((0x1==0)?16:32)))goto WfLqn2;{ -TIQMZ1|=0xF8u;switch((J7Iki4->HtJEJ>>((01==0)?0:0x2))&3){case 0:{if(! -(!(J7Iki4->HtJEJ&64)||(uXZM21&(0x1u<<0))!=0||!(bpv453&(01u<<0))))goto -Jonao4;TIQMZ1&=07u;Jonao4:;}break;case 0x1:{if(!((J7Iki4->v6D2d3[0]. -JhCor3&16)!=0||(J7Iki4->oXafA1[0].H4ghS2&(0x1u|1024u|32768u))))goto -XsZf_4;TIQMZ1&=7u;XsZf_4:;}break;case 02:{if(!((J7Iki4->v6D2d3[01]. -JhCor3&16)!=0||(J7Iki4->oXafA1[1].H4ghS2&(0x1u|1024u|32768u))))goto -LdTsZ2;TIQMZ1&=7u;LdTsZ2:;}break;case 0x3:break;default:;}}WfLqn2:;} -{if(!(J7Iki4->v6D2d3[1].TIQMZ1!=TIQMZ1))goto xq2Sw1;s3sCI1(RdZoN,19, -J7Iki4->v6D2d3[01].TIQMZ1=TIQMZ1);xq2Sw1:;}PBtXm1=J7Iki4->v6D2d3[1]. -PBtXm1&~16;BDstt2=pGYUX1[1]|M782F4[01];{if(!(BDstt2!=J7Iki4->v6D2d3[1 -].x8DWY2))goto aoMMx4;Rqv1w3(RdZoN,0xa0,J7Iki4->v6D2d3[01].x8DWY2= -BDstt2);aoMMx4:;}{if(!(J7Iki4->v6D2d3[0x1].JhCor3&16))goto VW_Yt3;{{ -if(!((J7Iki4->v6D2d3[0x1].aW7n84&~bpv453)))goto LnVlP2;PBtXm1|=16; -goto YADMu;LnVlP2:;{if(!((J7Iki4->iO1iw4[0x1]&8192ul)&&(CUmDv[01]& -0x1u)))goto haHZJ3;PBtXm1|=16;haHZJ3:;}YADMu:;}}goto _QnaE2;VW_Yt3:;{ -{if(!((J7Iki4->iO1iw4[01]&8192ul)&&(CUmDv[0x1]&(01u|1024u))))goto -Va2tt3;PBtXm1|=16;goto O8ZNs4;Va2tt3:;{if(!(J7Iki4->iO1iw4[01]& -262144ul))goto xTeNq1;{unsigned long jwgpJ2=pGYUX1[01];{if(!((J7Iki4 -->iO1iw4[0x1]&240ul)>(06ul<<0x4)))goto wfVl21;jwgpJ2|=65537ul;goto -f3lP35;wfVl21:;{if(!((J7Iki4->iO1iw4[01]&240ul)>(05ul<<4)))goto vi8Hd3 -;jwgpJ2|=01ul;vi8Hd3:;}f3lP35:;}{if(!(jwgpJ2==0xFFFFFFFFul))goto -Mxm1G4;PBtXm1|=16;Mxm1G4:;}}xTeNq1:;}O8ZNs4:;}}_QnaE2:;}{if(!((J7Iki4 -->iO1iw4[01]&15ul)==(4ul<<0)))goto Nyor63;PBtXm1|=16;Nyor63:;}{if(!( -J7Iki4->v6D2d3[0x1].PBtXm1!=PBtXm1))goto HDjd12;s3sCI1(RdZoN,0x12, -J7Iki4->v6D2d3[1].PBtXm1=PBtXm1);HDjd12:;}NmrSW4=0;l9wtw1=J7Iki4-> -v6D2d3[1].FNU7M3[0];{if(!(CUmDv[0x1]&((01u|1024u|32768u)|16u|4096u)))goto -PHeCM1;{l9wtw1|=4u;NmrSW4=1u<<16u;}goto M2BM14;PHeCM1:;l9wtw1&=~04u; -M2BM14:;}{if(!(J7Iki4->iO1iw4[01]&1048576ul))goto gWFIT3;{l9wtw1&=~ -04u;{if(!(J7Iki4->iO1iw4[01]&4194304ul))goto IJToQ3;l9wtw1|=04u; -IJToQ3:;}}gWFIT3:;}{if(!(J7Iki4->v6D2d3[0x1].FNU7M3[0]!=l9wtw1))goto -Kybko3;s3sCI1(RdZoN,64,J7Iki4->v6D2d3[01].FNU7M3[0]=l9wtw1);Kybko3:;} -{if(!(J7Iki4->iO1iw4[0x1]&524288ul))goto AroFR4;{unsigned char jf4g9= -J7Iki4->v6D2d3[0x1].jf4g9&~32;{if(!(J7Iki4->iO1iw4[01]&2097152ul))goto -qzx0n3;jf4g9|=32u;qzx0n3:;}{if(!(jf4g9!=J7Iki4->v6D2d3[1].jf4g9))goto -Mxu9u;s3sCI1(RdZoN,0x21,J7Iki4->v6D2d3[0x1].jf4g9=jf4g9);Mxu9u:;}} -AroFR4:;}{if(!(CUmDv[1]&(1u|1024u|32768u)))goto VsaX55;NmrSW4= -0xFFFFFFFFul;VsaX55:;}{if(!(NmrSW4!=J7Iki4->v6D2d3[0x1].oWLOw3))goto -DnIa91;Rqv1w3(RdZoN,0xa4,J7Iki4->v6D2d3[0x1].oWLOw3=NmrSW4);DnIa91:;} -}OzDgd:;}Ej8DZ3:;};}int __attribute__((cdecl))TAU32_SetFifoTrigger( -kWMzp1*J7Iki4,int b9Zs_,unsigned UYtd71,unsigned iBs7A2,MhiF14 IkJYR1 -){{if(!(b9Zs_!=(-1)&&b9Zs_>0x1))goto SXW_i;return 0;SXW_i:;}{if(!( -J7Iki4->SP4ZU==2&&b9Zs_>0))goto nor1g1;return 0;nor1g1:;}{if(!(UYtd71 ->03u||iBs7A2>=256))goto RsG2u4;return 0;RsG2u4:;}h2LrH3(&J7Iki4-> -h2LrH3);{if(!(b9Zs_==(-1)||b9Zs_==0))goto c6OfL3;CDXHr1(J7Iki4-> -hRUi43[0][UYtd71],iBs7A2,IkJYR1);c6OfL3:;}{if(!(J7Iki4->SP4ZU!=2))goto -rdouy4;{if(!(b9Zs_==(-1)||b9Zs_==1))goto ODnGX4;CDXHr1(J7Iki4->hRUi43 -[1][UYtd71],iBs7A2,IkJYR1);ODnGX4:;}rdouy4:;}uYS5N2(&J7Iki4->h2LrH3); -return 01;}void __attribute__((cdecl))TAU32_ReadTsc(kWMzp1*J7Iki4, -GFihS3*Q7gY12){volatile unsigned long*RdZoN;unsigned char*MGVo72=( -unsigned char* )Q7gY12;unsigned X3V8j4;h2LrH3(&J7Iki4->h2LrH3);RdZoN= -&J7Iki4->fV7o35->UyRVB4;AUUSL3(RdZoN,013,0);X3V8j4=8;{hx8lQ4:MGVo72[ -X3V8j4-0x1]=(unsigned char)RtiEy4(RdZoN,013);if(--X3V8j4)goto hx8lQ4; -};uYS5N2(&J7Iki4->h2LrH3);}static const unsigned char A7Lph2[]={0117, -0347,0377,0377,0142,0377,57,0,0,213,255,255,0377,0377,0377,0377,0377, -0377,0377,0377,0377,0377,255,255,255,0377,0377,0377,0377,0377,0377, -255,255,0377,0377,255,255,255,0377,0377,0377,0377,0377,0377,255,255, -255,255,255,255,255,0377,0377,0377,0377,0377,0377,255,255,255,0377, -255,255,0377,0377,0377,0377,0377,0377,0377,255,255,255,0377,0377,0377 -,0377,0377,0377,0377,128,011,48,129,0x26,208,4,152,128,023,0,0,0x19, -32,3,0144,128,011,0x26,0101,6,0xc8,0,0,0x19,32,3,0144,128,0144,0x31,1 -,0,017,12,16,01,0x32,0,0,062,0x1c,0216,19,32,0x3,0114,128,014,48,0214 -,0x26,208,4,64,6,0xc8,0140,02,0114,128,011,144,01,0x38,253,0,0,21, -0240,2,0124,128,012,0120,01,42,128,012,0120,01,0x2a,64,0x3,0164,0,0, -013,96,0x1,054,128,0x5,0240,0,0,0x2e,160,0x2,0,017,18,192,0x2,0130,0, -0,21,208,2,052,128,5,168,0,0,0x14,0240,05,0124,128,012,0240,0x2,0124, -64,05,168,0,0,21,192,02,104,251,0,0x18,16,0,32,02,0,14,168,0376,0, -0112,152,255,0,15,0x4,0,2,16,0,0,0x2,64,0,0,010,0,026,4,0,04,64,0,0x2 -,1,0,014,32,0,0,96,0376,0x18,0,13,4,0,0x3,16,0,0,012,64,0x1,0x8,0,0, -0x1,0,012,64,0,06,0240,0,0,144,0,0x4,64,1,0,1,0x5,0,014,0240,0,0,0136 -,0377,0,4,144,16,128,0,0x7,128,02,0,07,0240,0,0,4,0,17,0x4,0,011,32,0 -,01,128,0,0x8,32,0,0,024,0,0,208,0375,0,04,64,0,1,010,0,07,04,0,0x8, -01,0,054,32,0,0,104,248,0,4,176,0,0,6,0,0x7,128,0x5,0,0x7,96,0x1,014, -0,17,48,0,011,96,0,1,128,01,0,0x7,0140,0,0,054,0,1,0374,0,04,0120,0,0 -,0x2,0,0x7,128,0x2,0,7,0240,0,0,04,0,021,48,0,011,32,0,0x1,128,0,0x8, -32,0,0,024,0,01,248,0,0x4,128,0,0,24,0,0x8,19,04,0,06,192,0x8,48,010, -0,16,48,01,0,0x8,128,5,0,0x1,06,0,0x7,128,17,0x18,0x2,208,0376,0,04, -0140,0,0,036,8,0,0x7,4,0,010,129,56,0,021,074,32,0,0x8,192,0101,0,0, -128,0x7,0x2,0,06,192,0101,36,16,0360,0377,0,0x4,128,0,0,24,0,010,0x4, -0,8,0x1,48,0,021,48,32,0,010,128,0x1,0,1,06,0,07,128,01,32,0,0,8,252, -0,4,64,0,0,0x18,0,8,042,1,0,06,128,0x48,48,0,021,48,0,011,128,1,0,01, -06,0,7,128,1,16,011,0240,0371,0,4,16,0,0,0x2,0,07,128,0,010,32,0,0,4, -0,0x7,34,0,6,17,0,0,04,0,011,0240,01,0,0,128,0,8,160,0x1,04,0,0,0130, -0376,0,0x24,014,0,6,06,0,013,128,1,0,012,128,01,0,0x1,240,252,0,4,48, -0,011,128,5,0,7,0140,1,014,0,0x7,12,0,6,0x6,0,1,8,0,8,0140,0,01,128, -01,0,0x7,96,0,0,054,0,0,104,0373,010,0,0x3,16,0,011,128,0x2,0,0x7,160 -,0,0,4,0,07,012,0,06,0x5,0,0,128,0,011,32,0,1,128,0,0x8,32,0,0,0x14,0 -,0,0172,248,0,4,192,0,0,128,0,8,0x13,04,0,0x6,192,010,48,0,0x7,012,0, -06,05,0,0x1,010,0,011,0x8,0,0x1,0106,0,0x8,04,24,2,16,255,0,4,224,32, -0x6,4,0,0x7,0x4,0,010,129,0x38,0x8,0,16,014,0,011,64,128,0,0,128,0x7, -0x4,0,06,64,64,36,16,0xc8,0376,0x4,0,03,192,0,0,0x18,0,8,4,0,010,1,48 -,0,0x12,0x8,0,0x8,128,0x1,0,1,06,0,07,128,01,32,0,0,0161,0376,0,0x4, -192,0,0,24,021,0,0x7,02,0x1,0,0x6,128,64,48,0,021,48,0,011,128,0111,0 -,0x1,0x6,0,07,128,041,16,010,128,0376,0,0x4,16,0,0,0x2,0,07,128,0,010 -,32,0,0,04,0,17,064,128,0,8,32,0,012,1,32,0,0,04,0,0,112,0374,0,056, -48,0,26,152,0374,0,0x4,48,0,0,06,0,0x7,128,0x5,0,0x7,96,0x1,12,0,021, -48,0,0x1,0x1,0,06,0140,0,012,0x3,0140,0,0,0x2c,0,0,128,0377,8,0,03,16 -,0,0,2,0,0x7,128,0x2,0,07,0240,0,0,0x4,0,17,48,0,011,32,0,012,01,32,0 -,0,024,0,0,042,0377,0,0x4,192,010,0130,0,0x8,0x13,0x4,0,6,192,0x8,48, -0x2,0,17,042,0,0,1,0,06,128,011,0,011,054,128,011,24,02,0x28,248,0,4, -224,32,036,8,0,07,04,0,0x8,129,56,010,0,16,12,128,1,0,7,192,0101,0, -011,017,196,0101,36,16,232,248,0x4,0,3,192,0,0,0x18,0,8,04,0,010,01, -48,0,017,2,0,03,0x1,0,0x6,128,1,0,011,014,128,01,32,0,0,0241,248,0, -0x4,192,0,0,26,0,8,0x12,0x1,0,6,128,0104,48,0,15,8,0,0x2,026,0,7,128, -01,0,011,014,128,1,144,010,136,252,160,128,4,0,1,208,0,0,2,1,0,0x6, -128,0,0x8,32,0,0,064,0,021,064,0,0,32,0120,64,0,0,64,0,03,32,0,1,128, -0106,0x2,0,5,01,32,0,0,36,2,0334,248,0,0x4,192,0,01,010,0,18,48,0,15, -0x8,0,0,48,0,01,02,0,012,04,0,011,16,16,216,0373,128,0,0,014,0,01,48, -0,0,16,16,0,6,128,5,0,7,0140,1,014,0,17,48,128,0x1,64,128,0,05,0140,0 -,0x2,0x6,1,0,5,3,96,0,0,054,0,0,176,0375,010,16,5,0,01,16,0,011,128, -02,0,7,0240,0,0,04,0,021,48,128,0,0x1,02,0,0x5,32,0,2,0x16,0,0x6,0x1, -32,0,0,024,0,0,0263,0376,0,0,132,48,0101,0,01,2,8,0,010,0x13,4,0,6, -192,010,0,0,32,0,016,021,0,0,128,0x8,06,0,0,0102,0,1,8,04,0,1,128, -0x49,0,1,0106,04,0,5,014,128,0x49,0x28,0,0,051,0373,0140,0,0,074,0,1, -32,32,06,16,0,7,0x4,0,8,129,010,0,017,8,0,0,12,128,7,062,0,1,192,0,03 -,192,1,0,0,128,07,0,6,017,0310,1,0x24,0,0,48,248,132,128,48,0,1,192,0 -,0,8,8,0,0x7,04,0,0x8,0x1,48,0,017,01,0,02,0x6,64,0,02,131,0,0x2,128, -0x1,0,01,6,0,06,014,128,0x1,32,0,0,0x49,248,0,0,021,48,0,01,192,024, -136,0,010,0102,0x1,0,06,128,0120,176,010,0,016,04,0,02,06,128,0x14,0, -0x1,0x3,0,02,128,01,0,01,0x26,1,0,5,014,128,01,32,0,0,112,251,16,0, -0x3,16,0,0,0202,0,0x7,128,0,010,32,0,0,0x4,0,021,0x34,128,0,3,64,03,8 -,0,01,160,1,0,0,128,06,0120,64,02,010,0,03,32,061,0x4,01,168,255,0,7, -16,0,043,16,0,0,48,0,0x5,0x3,0140,0,1,128,0x1,0,4,16,0,0x4,128,0,0x1, -0x8,0xc8,249,0,04,48,0,0,16,16,0,0x6,128,0x5,0,0x7,0140,0x1,014,0,017 -,01,0,0,48,128,1,0,3,131,0,0,64,0,0,0140,0,02,06,64,0,06,0140,01,16,0 -,0,0x28,0373,014,0,0x3,16,0,011,128,2,0,7,0240,0,0,04,0,07,64,1,0,05, -0x2,0,0,48,128,0,04,0x8,0,0,0x1,0,0,32,0,3,0x1,64,144,02,0,03,0240,0, -0,128,010,0142,253,0x4,0,3,192,0x4,0x18,0x1,0,07,023,0x4,0,06,192,8, -48,01,0,14,010,0,01,010,046,0,0x3,0x23,1,64,0,04,64,0x1,0102,64,8,0, -0x4,01,0,0x1,48,252,0,04,224,32,0x6,16,0,0x7,0x4,0,0x8,129,56,010,0,6 -,128,0x1,0,07,014,128,0x7,1,0,1,192,03,24,0,01,64,64,0,0,128,01,48,0, -0,06,0,04,192,0,0,12,0x8,0x38,253,16,0,0x3,192,0,0,0x18,16,0,0x7,0x4, -1,0,7,0101,48,0,023,6,0,03,0x3,01,0,0x1,128,0101,0,0x2,64,128,010,0, -0x5,1,0,1,0111,248,0,0x4,192,0,0,8,0x1,0,0x7,0102,0,7,128,16,48,0,18, -128,0x6,0,0x3,043,0,0,64,0,0,128,05,0,0x1,0x26,136,8,16,041,0,0x3,128 -,0,1,8,144,255,0,4,16,0,0,0202,64,1,01,0,04,128,0,0x3,64,0,3,32,0,0, -0x34,0,7,64,2,0,0x5,32,0,0,16,128,024,0x1,0,01,64,0,2,0x1,32,0,0,48, -144,0,8,32,061,0x4,0,0x1,252,0,7,16,0,0x25,32,010,2,0,011,48,0,011, -128,1,0,0x1,56,0377,0,4,48,0,0,24,16,1,0,05,128,5,0,0x2,192,0,0x3, -0140,01,014,0,0x7,64,0x4,0,05,0140,0,0,054,128,03,0,0x2,192,3,0,1,3, -96,0,0,074,128,01,0,07,224,0,0,074,0,0,136,252,8,0,0x3,16,0,2,32,01,0 -,04,128,0x2,0,0x2,64,0,0x3,160,0,0,04,041,0,016,32,0,0,148,136,4,0,02 -,64,32,1,0,0,0x1,32,0,0,52,128,0,010,160,011,05,16,0372,249,0,0x4,192 -,0x24,0120,16,0x8,0x1,0,05,023,04,0,2,023,0,2,192,0x8,48,32,0,0x7,2,0 -,5,128,011,24,0,0,4,0,3,8,02,0,0,014,136,0121,128,0x8,38,0,8,0x48,176 -,0x8,24,0376,0,4,224,0,0,06,192,0,7,4,0,0x2,192,0x3,02,0,02,129,0x3c, -0,017,224,01,0x25,128,02,0,2,192,0,02,017,192,0x1,014,128,0x7,0x4,0,6 -,224,0,0,56,0,0,0xc8,0375,04,0,3,192,0,0,16,0,0,1,1,0,05,4,1,0,0x2,03 -,0,0x3,0101,48,0,8,02,0,05,128,0x1,0x28,0,0,02,0,0x3,0x3,0,0x1,12,128 -,1,0,0x1,06,0,0x8,64,48,010,0241,0372,0,0x4,192,0,0,0130,16,0x2,0,06, -0x12,0,03,3,0,02,128,4,128,010,0,06,64,0,06,128,0x1,16,0,0,0x4,0,3, -0243,0,1,014,128,0x1,0,0x1,0x6,0,8,011,48,0x2,224,0376,0240,144,04,0, -1,16,0,0,012,01,0,2,0x5,0x4,0,01,128,0,0x3,64,0,3,32,0,0,0x4,0,0x8,02 -,0,0x8,128,0,0x3,64,32,0x28,32,015,32,0,0,52,128,0,8,32,0,0,0264,010, -112,248,128,0,06,010,0,0x1c,0x1,0,8,0x8,0,5,01,0,3,48,0,015,176,0376, -0,0x1,12,0,1,48,0,0,0x18,4,0,2,4,0,0x2,128,0x5,0,0x2,192,0,03,0140,1, -014,0,021,054,128,0x5,0,03,1,042,32,014,96,0,0,48,128,01,0,07,0140,0, -0,48,0,0,128,0371,010,144,0x4,0,1,16,0,0,72,0,0x3,64,4,0,1,128,2,0,02 -,64,0,0x3,160,0,0,04,0,017,1,0,0,148,136,02,0,03,041,0,1,12,0x21,0,0, -48,128,0,8,32,0,0,16,04,0342,0374,0,0x1,062,0101,0,0,192,042,24,1,0,2 -,32,0x4,0,2,0x13,04,0,0x2,013,01,0,1,192,0x8,48,011,0,016,8,0,0,24,0, -0,3,0,0x3,34,0x4,041,128,128,021,128,0x8,026,0,07,128,0x1,0,0,32,240, -0372,96,0,0,074,0,0x1,224,0,0,0x1e,04,0,0x2,3,0,3,4,0,0x2,192,03,0,03 -,129,56,0,17,36,128,4,0,0x2,192,0x2,24,0,0,017,0xc8,0101,014,128,0x7, -2,0,6,192,0101,074,0,0,216,253,0x4,1,48,0,0x1,192,0,0,0x18,0x4,0,02,4 -,4,0,0x2,04,1,0,02,0x3,0,0x3,0101,48,0,021,0x28,0,0,4,0,04,32,0,1,132 -,01,0,0x1,6,0,7,128,01,48,0,0,153,255,64,137,48,0,0x1,192,0,0,0x18, -0x1,0,02,8,0,03,02,0,3,0x3,0,2,128,0,0,48,0,17,16,0,0,2,0,02,128,32, -0104,129,054,128,01,0,01,06,0,7,128,1,48,042,32,0377,0240,136,0,0x2, -144,0,0,02,0,07,128,024,0x14,0,01,64,0,0,0x28,32,0205,32,011,064,0, -017,0240,16,32,128,0x4,0,1,26,64,0101,0,1,133,160,1,04,128,0,03,64,0, -0,012,0,0,1,32,0,0,04,0,0,0120,0377,128,0,0x3,192,128,0,011,02,0,06, -010,136,128,48,0,15,011,1,021,010,02,0,1,24,0,0,01,0,01,010,8,0,7,0x2 -,0,6,8,249,0,4,48,0,0,6,0,7,128,05,0,03,03,32,0,0,0x4,0140,0x1,014,0, -017,128,0,0,054,128,0x5,0,01,0x18,0,03,4,0140,0,0,12,0,0,06,0,04,1,0, -0,0x3,0140,0,2,24,0371,8,16,0x1,0,1,144,024,2,0,07,128,02,0,03,16,2, -0x21,010,0240,0,0,4,0,0,04,0,0x5,16,0x2,0,05,8,1,148,136,0x2,0,1,0x18 -,0,0,010,02,0,0,8,32,8,0x5,0,0,64,2,0,05,01,32,0,0x2,062,0373,0,0,0x4 -,0x2,0,01,128,0x28,24,0,010,0x5,192,132,0,01,163,0,0,041,0x4,64,01, -128,0,0,02,0,05,16,1,0,05,136,0,0,24,0,0,3,0,01,128,16,32,0,1,04,128, -011,48,0101,38,0x1,0,2,010,0x4,0102,0114,128,0121,0,0,011,248,254, -0140,0,03,0360,0,0,0x1e,04,0,7,0x4,240,0,1,192,0,0,0x18,0,0,013,0,0, -01,010,010,7,0,05,144,3,0,0x5,104,0x1,36,128,0x4,0,1,06,192,0,0,0x2,0 -,0,013,224,129,0x3c,128,07,0,2,192,0,0,24,0,0,017,196,01,12,0,0,224, -0373,4,01,0,04,24,0,010,04,192,0,02,0x3,041,32,4,0,0,0x1,48,136,5,0, -05,208,2,0,0x5,136,0,0,24,0,0,0x2,0,3,02,0,01,04,128,0x1,48,0,6,96,0, -0,014,128,0x1,48,0,0,129,248,0,0,0205,0,0x2,128,0x24,0x1a,0,0x8,0x4, -192,0,0x2,3,64,04,8,0,0,0x1,48,0,0,04,0,0x5,0x8,02,0,0x5,4,0x1,32,0,0 -,0x4,0,3,18,2,0,0,0x8,0,0,72,48,0,0,0106,0x1,0,0x3,0142,0104,014,128, -1,48,16,216,0377,0,035,4,0,06,0x2,0,043,248,0373,32,0,0,0x4,128,0,0, -16,0,01,64,0,0,8,0,0,01,32,0,0,04,128,0,0,16,0,0,02,64,0,0,8,0,0,01, -32,0,0,4,0,0x7,02,0,0x6,0x21,0,0,4,0,01,16,0,0,2,64,0,0,0x8,0,0,01,32 -,0,0,04,128,0,0,16,0,0,2,64,0,0,010,0,0,1,32,0,0,0x4,0,0,8,254,0,7,4, -0,0101,216,0377,0x24,0,0,04,128,0,0,16,0,0,0x2,64,0,0,010,0,0,01,32,0 -,0,04,128,0,0,16,0,0,02,64,0,0,8,0,0,01,32,0,0,04,0,15,32,0,0,0x4,128 -,64,0x18,0,0,0x2,64,0,0,010,0,0,01,32,0,0,04,128,0,0,16,0,0,2,64,0,0, -010,0,0,1,32,0,0,0x4,0,0,053,0374,014,0,0,010,0,1,32,24,0,011,16,0,02 -,128,0,4,4,8,0x6,0,16,0x8,0,8,02,64,144,8,0,0,1,0,0x6,2,64,144,0x8,17 -,011,0375,32,0,1,128,0,0,16,0,0,0x4,64,0,0,010,0,0,01,32,0,0,0x4,128, -0x1,18,0,0,2,0,1,8,0,0,1,96,128,0,024,0x1,16,0,0,2,128,0,0,010,0,6,16 -,0,0,2,64,0,0,8,0,01,32,0,0x2,0x38,252,0x8,0,73,212,251,32,0,0,04,128 -,0,0,16,0,0,2,64,0,0,010,0,0,1,32,0,0,04,128,0,0,16,0,0,02,64,0,0,010 -,0,0,01,32,0,0,04,0,15,32,16,6,128,0,0,16,0,0,2,64,0,0,010,0,0,1,32,0 -,0,0x4,128,0,0,16,0,0,02,64,0,0,8,0,0,1,32,0,2,168,0372,0,16,128,0, -0x16,32,0,013,64,0,0x7,0x1,0,04,16,0,2,4,0,0,0120,248,0,07,04,0,0x1d, -32,0,025,16,0,013,248,0376,0,025,129,0,047,0x2,0,012,176,0374,0,075,8 -,0,013,24,255,0,43,64,0,0x5,16,0,026,136,251,0,0x35,128,0x4,0,011,32, -0,7,0x38,251,0,0x14,64,0,43,16,0,07,0xc8,0377,0,0x6,4,0,011,01,32,0, -0x8,0x8,0,023,16,0,0x12,0x4,128,64,8,0,0,104,253,0,6,012,0,011,0x4, -128,0,0,128,0,6,32,0,19,16,0,016,010,0,0x2,1,32,0,0,5,0,0,208,252,32, -0,0,16,4,0x2,0,2,2,0,0x7,04,0,0,0x1c,0,01,01,0,3,0x1,96,0x7,0,017, -0120,32,0,1,16,136,0,011,0202,128,1,0,02,192,0,0,8,128,0176,16,8,0360 -,255,0,1,16,0,0,04,0,017,64,0,0x17,64,0,016,0x4,0,07,128,128,0x8,16, -0130,255,0,2,16,0,3,8,0,0x7,02,0,0,32,0,0x5,128,0,0,16,010,0,16,16,0, -016,0101,0,03,32,0,0,2,0,0,64,0,2,0374,0,0x36,1,128,0,17,16,254,0,2, -64,0,45,16,0,0x1,64,64,0,0x5,64,0,0x1,16,0,011,0310,255,0,0112,152, -0377,16,0,03,16,0,0102,16,0,0,0334,0373,0,07,8,0,16,4,0,18,128,0,010, -32,0,0,04,0,03,4,0,03,0x1,0,0x6,253,0x8,0,046,32,0,0,16,0,0,0x1,0, -0x1d,146,255,0,53,0x4,0,8,01,0,011,216,0372,0,0x36,021,0,0x12,136, -0377,0,047,32,0,0x1f,64,0,0,248,0371,02,0,73,184,253,0,067,010,0,17, -24,0377,0,54,0x2,0,8,0x2,128,0,07,56,0375,0,37,128,0,0,64,0,041,0120, -251,0,0105,0x8,0,0x3,16,0377,0,0106,32,0,0x2,152,253,0,0x34,2,0,4,128 -,0,013,128,0,0x1,176,0377,0,032,0x1,0,024,0x4,0,3,0x2,0,0x13,168,248, -0,0112,152,255,128,0,0x6,02,01,0,1,0x4,0,011,32,0,0x19,64,0,03,32,0,0 -,01,0,4,64,0,0,0x8,0,0x8,152,0377,0,026,0x1,0,13,128,0,3,16,16,0,010, -0x1,0,0x6,0x5,0,013,0120,254,0,1,1,0,0x1,16,0,0,32,4,0,18,04,0,0x12, -0x8,0,7,32,0,010,010,0,05,136,64,248,0,0,03,0,0x4,64,0,3,18,0,011,64, -0,062,232,0376,0,0x36,0x4,0,0x12,152,0373,0,07,2,0,013,128,0,0x2e,0x8 -,0,04,48,255,0,04,04,0,0x8,04,0,0,2,01,32,0,1,64,0,02,128,64,16,0x8,0 -,16,16,0,1,1,0,0x4,64,0,17,128,248,128,0,04,128,0,15,2,0,027,010,0x2, -0,0x3,128,0,0,16,0,0,128,0,0,16,0,0,02,0,010,128,0,0,144,0,0,0375, -0240,0,0x3,2,128,0120,0,01,64,01,0,2,010,0,0,0x1,0x2,64,0,0x2,3,0,0, -0x28,64,128,010,16,0,16,8,0240,024,2,0,02,0120,0102,0141,0x28,32,0,0, -0x4,128,0,01,024,128,02,0,0x2,0x28,0,01,021,32,32,251,0,0,04,0,0,6,0, -0,0101,32,0x8,0,0,01,0x2,01,0,0,2,0,02,0x2,128,0x4,0,0,64,64,136,0,0, -32,0,1,128,041,0,12,0140,0,0,128,64,1,128,4,132,0,0,16,0,01,136,0,0x1 -,42,06,128,04,132,64,0,0,16,128,0,0,192,16,32,128,0103,0,0,0x4,248, -255,0,03,128,64,128,8,64,0,3,8,0,0x2,02,0,24,64,0,0,128,0,0,01,0,011, -2,0,3,16,0,4,32,0,0,128,64,0,0x1,24,0371,0,0x2,010,0,015,64,0,0x2,128 -,0,0x13,32,0,0x4,02,16,0,0,0x8,0,7,8,0x2,0x1,0,0,0x2,0,0x1,32,0,01,64 -,0,0x1,16,232,248,64,0,06,128,0,02,0x2,0,011,16,0,016,32,0,011,32,0, -0x3,16,0,0x5,0x4,32,0,0,04,0,0x8,0140,255,0,0x2e,128,0,032,16,255,0,0 -,01,02,0,5,0x2,0,021,128,0,16,64,0,014,0x8,0,015,216,248,0,6,16,0,012 -,16,0,02,32,0,0x32,152,253,0x2,0,0x28,0x2,0,13,4,0,16,216,251,0,7,010 -,0,0x7,4,0,0x8,01,0,016,8,0,26,0x4,0,2,128,254,0,0x29,1,0,014,0x1,0, -012,04,0,5,216,0376,0,046,16,0,042,136,0377,0,0,64,0,0x4,16,0,062,01, -0,016,216,0372,192,0,0x4,64,0,0,128,0,023,16,0,16,2,0,1,8,0,0x1,128,0 -,0x3,64,0,013,64,0,2,248,254,0,6,4,0,075,010,0,0x1,128,0,0,0x18,251,0 -,0x6,32,0,041,0x1,0,05,0x8,0,24,32,0374,0,0x6,0x2,0,41,144,64,0,02, -0x28,0,1,32,129,0,0x5,64,0,0x2,0x5,32,0,3,0373,0,0x36,64,0,015,8,0,03 -,0120,0373,0,0x7,0x8,0,0x28,128,128,0,02,0130,0,02,01,0,5,192,0,02, -013,0,03,144,0371,0,0x36,0x28,0,2,144,0,0x5,64,0,0x2,0x5,0,03,248, -0371,0,6,24,1,0,0x29,0102,0,02,48,64,0,01,132,0,6,0x23,02,0,0,134,04, -16,0x2,0,0,208,0376,0,0x6,0x1e,04,0,0x28,48,0,3,64,0,01,0140,0,0x6, -192,03,0,1,010,0140,0,0x2,0x28,0374,0,0x31,128,0,3,64,0,0x2,01,0,0x6, -3,0,1,0x8,128,0101,0,1,16,0371,0,6,0x58,16,0,0x28,64,0102,0,02,32,18, -0,0,128,0x28,0,06,3,0,01,0104,0202,0x1,0,1,0120,0376,0,01,4,0,03,032, -02,0,5,064,0,0x3,128,0,4,32,0,0,04,0,0x7,0x28,0,06,024,0,0,0x4,0,01, -16,0,0x3,010,0,01,32,129,0,0,128,0,0x7,1,32,0,0,0x34,0,0,0154,251,0,6 -,0x18,0,6,48,0,0x4,0x4,0,016,12,0,6,0x6,0,0x1a,48,0,0,168,0373,0,01, -12,0,03,010,16,0,012,6,0,0x6,074,8,0,6,014,0,0x6,06,0,0,014,0,0x1,240 -,0,3,0130,0,02,1,0,0,128,07,0,06,013,224,1,075,0,0,48,0373,8,0,0,0264 -,32,0,0x2,24,01,0,05,48,0102,0,0x2,0x2,0,05,0x28,0264,0,07,012,0,6,5, -0,0,4,0,1,208,0,03,0x28,0,0x3,01,128,0x6,0,6,05,32,010,0x34,0,0,123, -0376,0,01,176,0,3,0x8,01,0,0x6,2,0,2,0x18,0x5,0,3,128,0x5,0,0,0x2,0, -06,012,0,0x6,05,0,0,48,02,0,0,192,0,0x3,48,64,0,1,132,0,1,198,0,6,134 -,0x4,144,0,0,2,0x29,0371,0,01,0x3c,0x8,0,0x2,036,16,0,5,074,16,0,0x2, -036,0,04,224,0101,56,16,0,16,074,32,0,0,0360,64,0,02,64,0,1,96,0,1, -128,7,0,6,8,96,0,0,12,010,208,0377,0x4,0,0,48,0,0x3,0x8,16,0,06,32,0, -2,24,0,25,48,0,01,192,0,0x3,64,0,02,1,0,01,06,0x1,0,0x5,0x8,128,01,0, -1,014,0375,0,0x1,48,010,0,2,16,0,07,0x1,0,0x2,032,0,04,128,041,176,8, -0,16,52,0,01,208,36,0,0x2,32,16,0,0,128,16,0x1,0,0,06,0,0x6,4,0202, -0111,0,0x1,32,251,0,0x1,0x4,0,03,2,0,011,208,0,0,128,0,4,160,129,4,0, -021,52,0,1,16,0,01,64,0,0,8,0,1,32,0,012,01,32,137,0,01,232,252,0,021 -,192,0,01,04,0,0x3,128,0x1,0,18,48,0,032,128,249,0,1,014,0,04,8,0,010 -,192,0,0,0x6,0,0x4,128,0,0,0x3c,010,0,016,2,0,0,074,0,01,0360,0,1,192 -,0,0,0x58,0,0x1,224,0x1,0,011,013,0,0,01,0,0x1,16,251,0x4,0,0,04,0, -017,0x8,3,0,4,128,0205,0x34,2,0,016,02,0,0,064,0,1,16,0x28,0,0,64,0,0 -,0x28,0,0x1,0240,01,0,011,5,0,0,0x28,0,1,0272,0372,014,0,0x1,02,0,0x2 -,152,0,011,192,136,24,01,0,03,128,16,0,0,2,0,14,0x4,0,0,48,0,02,0102, -0,0x1,043,48,64,0,0,128,01,0,011,134,0x4,132,0,1,152,0373,0,0x1,014, -16,0,2,036,0x4,0,0x8,48,0,0,036,0x4,0,0x3,224,129,0x38,16,0,016,02,0, -0,56,0,01,32,0,0x1,192,03,0102,0,1,224,129,0,011,0x8,0140,0,0x2,128, -0372,0x8,0,0,48,16,0,14,64,24,0,0x4,128,0,021,0x2,0,0,48,0,0x2,64,0, -01,3,64,0,1,128,0101,0,011,8,0,0,01,0,0x1,0x49,251,0,1,48,0,3,0x18, -041,0,011,04,26,0,05,021,49,021,0,016,0x1,0,0,48,0,0x1,16,0x4,0,0,64, -03,32,021,0,0,128,17,0,011,36,0202,32,0,0x1,112,0374,0,02,0202,6,0120 -,010,0x1b,0102,0,03,160,1,0,0x4,0x2,0,0x3,0x1,32,0,0,52,0x4,0,016,010 -,0,0,4,0,0x1,16,0,1,64,0,0,0x8,0,1,32,0,012,1,32,136,0,0x1,136,0372,0 -,0x2,0x8,6,128,0,0,24,0,0x4,128,1,0,12,48,0,017,04,0,0x18,128,0,02, -0140,0377,0,0x1,12,0,0,06,64,0,0,0x8,16,0,03,128,0x1,0,4,06,0,06,16,0 -,021,014,0,01,48,0,02,03,0130,0,1,224,01,0,011,013,0,0,128,0,0x1,224, -0375,0x8,0,0,4,0,0,32,136,0,0,24,1,0120,0,3,16,0x2,0,3,0132,16,0,02, -64,0x1,0x28,48,32,0,016,8,0,0,04,0,0x1,16,0,0x2,32,41,0,0x1,0240,01,0 -,011,0x5,128,010,0,1,162,248,0,01,48,011,198,64,0,0,010,0x1,0213,0, -0x2,128,0x1,0,0x4,0130,04,0,02,0214,0202,73,16,041,0,16,48,2,0,0,192, -0,0,0x1,0,0,0213,48,64,0,0,128,05,0,011,134,4,132,0,0x1,176,0375,0, -0x1,074,128,07,176,0,0,0x1e,0xc8,03,0,2,96,0,0,1,0,3,0x1e,0,0x3,017, -224,01,0x3c,0,021,0x3c,32,0,0,224,0,01,192,03,64,0,0x1,224,0x1,1,0,8, -8,96,0,02,184,0376,4,0,0,48,0,0,6,64,0,0,0x8,0,06,01,0,3,24,0,4,0x8,0 -,0,16,0,15,011,0,0,48,0,0x1,192,0,02,03,64,0,01,128,1,0,011,010,0,0, -01,0,01,041,0372,0,1,064,0,0,0106,132,0,0,144,010,013,1,0,0x2,010,0, -0x4,0x18,0x5,0,02,0114,128,5,0x21,34,0,016,0x8,0,0,48,0,01,192,0,02, -03,041,0x14,0,0,128,73,0,011,132,0202,128,0,0x1,216,0373,16,0,01,0202 -,0,2,26,0102,0,012,128,64,0,3,0240,129,0x4,0,7,128,0,0x6,0x21,0,0, -0x34,0,0x1,16,0,0x1,64,011,010,0,0x1,32,129,0,010,36,1,32,0,0x2,064, -0372,0,02,010,0,2,24,0,014,0x4,0,03,128,01,0,010,64,0,010,48,0,05,0x2 -,02,0,18,176,252,0,01,014,128,0x1,01,0,0,8,208,0x3,0,011,0x6,192,0,3, -128,0,0x1,16,0,0x7,2,0,5,0144,0,0,48,0,0x1,48,0,01,192,01,0130,0,0x2, -1,0x1,0,6,24,0,0,013,224,01,0,02,0371,014,0,0,0x4,128,32,0,1,24,0101, -0243,0,011,2,64,0,03,128,133,0,0x8,128,0,6,051,0,0,48,0,01,16,0,01,64 -,2,0x28,0,013,010,0,0,0x5,160,0x1,0,1,131,248,4,0,0,176,010,16,2,0,0, -0x8,010,010,0x1,0,0x8,24,04,043,02,0,1,128,0,0,48,01,0,6,128,0,6,128, -0105,0,0,012,0,0,192,2,0,01,0x1,48,64,0,1,132,0,7,0140,0,0,134,132, -0x1,0x2,0,0,0141,254,0,1,0x3c,0,0,7,0,0x1,036,128,03,0,011,036,192, -0x3,0,02,224,01,61,0x8,0,6,64,0,06,224,1,12,0,1,224,128,0,0,128,2,64, -0,01,0140,0,0x8,0170,32,8,224,01,0,0x1,168,0377,0x4,0,0,48,0,1,0x2,0, -0,010,16,128,0,011,24,0,0,3,0,2,128,0,0,1,0,8,01,0,05,128,0x1,0,02, -192,0,0x2,01,64,16,0,1,129,0,07,0140,0,0,0x8,0202,0x1,0,01,011,0375,0 -,0x1,064,128,32,0,01,144,0,0,023,0,011,0x1a,0,0,3,0,0x3,01,48,4,0,14, -0240,1,0,02,192,0,02,0x2,32,4,0,0,128,0,0x8,0140,0,0,132,128,0105,0, -0x1,112,0376,16,0,0,48,2,0,02,02,64,013,0x2,0,4,128,06,0,1,0x2,0,4,32 -,0,0,0x4,0,7,64,1,0,0x5,32,0,0,064,0,0,16,024,0,0x1,64,145,8,0,01,160 -,144,0,0,128,04,2,0,05,0x1,32,0,2,0x78,0377,0,0x2,0x8,0,04,3,0,27,2,0 -,07,48,0,011,128,0,15,136,0377,0,01,074,16,0,02,0x1e,0,0,0x1,0,06,6,0 -,01,0x6,0,0x4,224,1,0,0,16,0,016,0140,0,0x1,128,0x1,48,0,0x2,129,0x58 -,0,03,1,0,0,0x4,0x4,0,05,013,224,0x1,0,01,0360,0373,014,0,0,4,0,03, -0232,04,013,0x2,0,5,026,0x2,0,0,0x2,0,0x4,160,0101,0,16,32,0,01,128,0 -,0,16,0,0x2,16,0x28,0,0x5,64,0,06,05,160,1,0,0x1,0142,0372,4,0,0x5,64 -,0x8,01,0,0x6,64,0,0x2,0x1,0,04,132,48,012,0,0x6,64,02,0,0x5,128,0x5, -129,64,0x6,192,010,0,01,18,0x31,64,0,1,32,0,01,16,2,0,05,134,132,011, -0,0x1,0x8,0375,0,0x1,074,0,0x3,0x1c,192,3,1,0,0x4,128,0x7,04,0,0,0x6, -0x8,0,0x3,192,0x1,074,0,010,2,0,05,224,1,12,128,07,0342,128,0,0,192, -03,64,0,01,0140,0,0x1,128,1,0,06,010,224,129,0,1,176,0373,16,0,06,4, -01,1,0,010,24,0,0x5,64,0,0x8,64,0,06,128,01,0,01,06,208,0,03,64,16,0, -1,0x1,0,1,04,0,06,010,0202,0x1,0,01,0141,0375,0,0x1,064,0,03,24,0,0, -18,0,0x6,06,02,0,0,152,0x2,0,03,128,011,176,32,0,016,128,01,0,0,34, -0x6,192,0,0x2,0x2,0x21,01,0,0,64,145,0,0x1,0102,0x8,0,5,36,128,0121,0 -,0x1,176,248,0,02,2,0,0,208,0,0,0x2,64,013,0x2,0,8,128,0,01,104,0,0, -015,36,0,0,064,0x4,0,0x7,01,0,0x5,0240,01,0264,0,1,208,0,1,64,0,0,0x8 -,0,1,0240,0x8,0,0,128,4,02,0,0,032,0,3,0x1,32,16,0x35,0x8,0,0,0376,0, -2,0x8,0,0,192,0,2,3,0,012,4,0,0,0140,0,0,014,0,1,48,0,07,64,02,0,0x5, -128,01,48,16,0,010,128,0,0,01,0,0x3,0x18,0,6,32,0,0,152,0371,0,01,014 -,0,0x3,036,0,0,0x1,0,011,06,0,3,0x4,224,1,16,0,021,32,32,0,0,48,32,0, -1,0x3,0130,0,05,0x4,04,0,0,0x1e,0,0x3,013,128,0,0,48,16,0,0,248,010,0 -,0,4,0,03,0132,4,013,2,0,0x8,02,0,0x3,0x2c,168,011,0x32,32,0,14,1,0,0 -,16,01,0,0,16,2,0,01,0x3,0x28,0,0x3,01,0,0,32,0,1,0x1a,0,3,05,128,132 -,48,0,0,138,254,0,01,48,01,0,0,192,0x8,64,010,17,0x4,0,8,152,0x4,0,01 -,0101,0104,0x4,132,16,021,0,016,4,0x8,0261,32,0,0x1,0102,0,0x1,32, -0x34,64,0,0x1,0x4,01,0,0,16,0x2,0,0,24,0,03,134,0x4,129,0,0,0x2,0x18, -0372,0,1,0x3c,010,0,0,240,128,0x1c,192,3,0,011,036,0,1,0x18,0,0,15, -192,1,074,0,017,0140,0,0,014,0,01,32,0,01,192,0,0,64,0,01,0140,0,01, -128,1,0,0x1,28,0,0x3,010,0140,1,014,010,0360,0372,04,0,0,48,0,0x1,192 -,0,0x1,4,0x1,0x2,0,8,24,0,0x2,64,4,0,0,64,16,0,16,128,32,16,0,0,16,64 -,0,1,128,64,16,0,01,1,0x1,0,0,0x4,04,0,0,0x18,0,3,0x8,0x2,0,01,32,061 -,0372,0,0x1,064,0,01,192,024,152,0,0,18,0,011,0x1a,0,02,2,0x48,136,5, -32,041,0,16,010,2,0,0,16,04,0,01,32,32,0,02,011,0,1,18,0,1,24,0,03, -0x4,64,128,128,0,0,216,248,160,0x1,0,0,0202,0,0x2,26,73,0103,104,0,0, -015,0,6,152,0,1,104,0,0,1,32,0,0,4,0,017,0240,0x1,0x34,18,0,0,16,0,0, -02,64,0,0,72,64,01,32,0,0,0x4,128,0,0,16,0,0,26,0,03,137,164,48,4,0,0 -,112,253,128,01,0,0,010,0,0x2,0x18,0,0,03,0140,0,0,014,0,0x7,0x4,0,0, -0140,0,024,132,1,48,0,06,32,0,010,24,0,0x3,0x4,128,0,0x2,0x38,253,128 -,1,014,128,01,0,1,036,192,131,0140,0,010,036,0,1,0170,0,0,0x3,224,1, -0x3c,0,017,224,01,32,0,1,48,32,24,192,0,0,0x58,0,0,017,224,0x1,48,128 -,7,192,0,0x5,013,0,01,48,0,0,224,253,8,16,6,128,0,02,0132,0x48,0x3,0, -0,36,0,0x7,0202,2,0,0,104,0,0,0x1,160,0121,064,0,0,4,0,0x5,16,2,0,5, -168,1,16,34,0,0,16,010,24,64,0,0,0x28,0,0,015,0240,01,48,128,06,192,0 -,0x5,05,0,0,0x28,48,0,0,0232,0377,128,011,48,012,0106,0,01,64,010,010 -,0141,0,0,054,0,011,96,0,0,0214,0x8,132,48,02,0x2,0,0x5,16,01,0,0x5, -136,1,48,0x1,0,1,0102,24,011,013,0120,0,0,0214,128,01,0,0,0x2,046,194 -,0202,64,32,0,2,012,0,0,010,0262,0,0,144,249,0140,0,0,0x3d,0,0,7,4,0, -0,4,128,3,24,32,017,0x8,0,0x5,036,0,1,112,0,0,017,192,0x1,0x38,16,0x7 -,0,05,144,03,0,05,0xc8,01,12,0x8,0,0,32,0,0,036,192,131,64,0,0,016, -0344,1,015,0240,07,240,0,0,0x6,0,3,0x8,0140,0,0,0x3c,16,248,0374,0x4, -0,0,48,0,0,6,0,01,24,04,0,2,014,4,0,0x8,96,0,0,12,0,1,0x31,128,0x5,0, -0x5,208,2,0,05,136,1,32,0,02,64,24,16,03,64,0,0,014,128,0x1,0,0x1,0x6 -,193,0,0x5,0x8,0,0,0x1,49,32,0x29,0376,0,0,32,52,0,0,06,0,0x1,16,01, -02,0x1,132,0114,0,6,26,0,01,0140,0,0,014,128,0x5,48,010,04,0,5,0x8, -0x2,0,05,132,01,0,0,010,0,0,208,4,0130,0,0,3,64,0,0,014,144,0101,0,0, -16,026,192,0102,64,8,0,2,8,0,0,021,48,01,8,248,0,1,0x8,0,16,0x4,0,8, -04,0,06,02,0,5,64,0,0x4,0202,0,026,156,0375,32,0,0,4,0,0,0x1,16,0,0, -02,64,0,0,0x8,0,0,01,32,0,0,4,128,0,0,16,0,0,02,64,0,0,8,0,0,1,32,0,0 -,4,0,7,0x8,0,6,04,0,01,128,0,0,32,0,0,02,0,01,010,0,0,1,32,0,0,0x4, -128,0,0,16,0,0,02,64,0,0,010,0,0,0x1,32,0,0,0x4,0,0,176,253,0,0x35, -128,0,19,24,255,0x28,0,0,0x4,128,0,0,16,0,0,0x2,64,0,0,0x8,0,0,01,32, -0,0,4,128,0,0,16,0,0,0x2,64,0,0,010,0,0,0x1,32,0,0,0x4,0,017,32,0,0, -0x4,0205,0,0,16,0,0,02,64,0,0,0x8,0,0,01,32,0,0,0x4,128,0,0,16,0,0, -0x2,64,0,0,010,0,0,0x1,32,0,0,0x4,0,0,0363,0371,0,0x1,0x8,0,0,32,0, -0x2,0x3,32,0x1,0,8,0x4,128,0,01,024,0x2,0,0,144,0,0,34,0,017,0120,128 -,010,0,0x1,2,0x1,128,8,0,0,0101,128,4,0,0x6,132,0,2,32,8,0,2,0231,249 -,32,0,0x1,128,1,021,0,0x3,0x8,0,0,0x1,32,0,0,0x4,128,0,0,16,0,29,01, -48,0,0,2,0,1,0x19,0,0x1,64,0,0,4,0,0,01,16,0,03,16,0,0,0x3,64,0,0,16, -0,0,64,255,4,0,0x6,010,0,023,32,0,0x2c,0x49,248,32,0,0,4,128,0,0,16,0 -,0x1,0x1,32,011,0,0,1,32,0,0,04,128,0,0,16,0,0,2,64,0,1,128,01,0,0, -144,0,0,0x1,0,017,0x28,0,0,192,0,0,16,0,0,2,0,0x1,010,0,0,128,36,0,0, -4,128,0,0,16,0,0,128,0x48,0,0,010,0,0,01,32,0,0,04,0,0,144,0375,0,23, -8,0,031,16,0,3,8,0,015,01,0,2,16,0377,0,24,04,0,0x13,32,0,27,184,0371 -,32,0,24,32,0,0,0x4,0,18,010,128,0,0x2,02,0,011,16,0,7,01,4,0xc8,0371 -,0,02,010,0,16,4,0,0x1f,128,0,0x7,0x8,0,010,2,0,0,0130,249,0,6,32,0, -29,128,0,0x2,0x2,0,31,16,0377,0,27,16,0,054,128,0,0,254,2,0,0x7,02,0, -013,128,0,23,16,0,0x1,64,0,02,2,32,16,04,0,8,128,32,0,1,02,0,02,0274, -0371,0,04,64,0,0,16,0,38,04,32,0,012,010,0,015,224,0372,0,04,16,0,0,2 -,128,0,5,16,0,01,64,0,0x3,1,0,0x16,014,32,0,0,0140,0,1,128,0,0,16,32, -02,0,01,04,0,6,021,0,01,0x4,0,0x2,24,0376,128,0x1,16,0,0,2,64,2,0,0,2 -,128,0,4,128,0120,0,4,176,0240,0,0x2,64,0,18,32,0,0x1,64,16,0,0x1,0x1 -,0,0,16,32,0,0,0x1,0,0,06,132,0,4,0240,1,0,0,0x2,32,0,0,0120,216,0371 -,32,0,0,16,0,0,04,64,0,03,02,0,012,128,32,0,0x3,1,0,0x14,32,0,0x2,1,0 -,0,16,0,012,32,0,0x1,0x2,0,2,128,255,0102,0,6,0x8,0,0x25,04,0,02,32,0 -,0x5,128,0,01,010,0x4,01,0,0x7,64,0,1,0314,248,0,0112,152,0377,0,045, -2,0,02,0x2,0,017,128,0,016,16,253,0,04,01,0,7,0x4,0,011,32,0,24,128,0 -,18,0140,2,0,01,72,0371,0,19,2,0,0x7,010,0,024,2,0,19,0x4,0,1,0130, -249,0,021,0x2,0,18,64,0,2,1,0,021,16,0,12,184,0371,0,0x5,128,0,057, -0x2,0,0x12,24,253,0,39,0x1,0,2,1,0,035,136,254,0,1,0x8,0,0x19,04,0, -054,0130,255,0,0x1b,0x1,0,45,152,0376,0,0x6,64,0,012,0x2,0,06,4,0, -0x21,128,0,07,32,32,0,01,48,0377,0,47,4,0,031,216,0373,0,0112,152,255 -,0,4,0x4,0,0104,216,255,0,16,0x4,0,0x1f,128,0,0x14,01,0,1,64,0376,0,5 -,64,0102,0,0,8,0,4,128,0,014,16,0,0x14,64,0,026,0120,248,0,07,0x2,0, -0x4,128,0,012,04,0,0,128,16,0,0x2c,120,0376,0,0112,152,0377,0,36,64,0 -,02,0x1,0,32,0xc8,0373,0,0x3,0x2,0,0x23,010,0,0x7,64,0,6,128,0,2,02,0 -,07,128,0,0x2,184,249,0,37,136,0,01,32,0,32,144,0375,0,02,128,0,0x3, -128,0,0,64,0,16,128,0,24,0x4,01,0,0x2,0101,64,0,015,0xc8,0372,16,0,0, -2,0,03,0x28,64,128,128,0,1,2,0,0,2,64,0,0x2,01,0,0x3,1,042,1,0,0x12, -16,0,02,1,0,024,0x1,0,0,216,254,0,0x8,02,0,16,03,0,0x1c,0x8,0,02,128, -0,014,136,0376,0,046,128,0,2,128,0,036,16,0377,128,0,0,04,010,0,0,64, -0,0,4,4,0,012,8,0,3,4,0,023,64,16,0,1,64,32,8,0,01,16,16,0,03,136,0,1 -,64,010,010,0,1,16,04,0x2,0,0,32,0,0,48,248,16,1,0x1,0,1,01,0,03,16,0 -,012,128,0,0x1,0x2,128,0,024,8,1,0,0x4,01,0,0,2,0,01,021,0,0x3,4,0,5, -64,16,0,0,32,0377,96,0,0,0251,16,0,0,045,0,0,0x4,0x8,0,0,010,0,8,0x4, -0,0,128,02,0,0,3,32,0,15,0x8,0,1,128,010,0240,0,0,32,64,4,0,01,18,32, -0x1,0,1,05,16,0x1,0,0,64,6,8,0,0x1,32,2,0x4,0,0,13,0,0,176,251,0,0,04 -,144,010,0,0x1,32,128,4,64,0x8,0,0,04,0,0x1,16,0,0,02,0x1,0,0,8,0,0, -0x5,0,1,041,162,0x2,0,016,32,0,01,64,128,4,04,0120,4,0120,0,0,01,32, -16,129,2,32,144,0x5,4,128,0,0,010,0,01,0240,16,0,0,03,32,32,0,0,144, -253,0,01,16,010,0,1,128,0,0,04,0,2,4,0,01,0x4,128,0,0,01,0,0,010,0,0, -01,0,0x2,0104,0,15,32,0,0x1,128,0,2,64,0,01,128,0,0,32,16,0,0,02,0,0, -16,0,0x3,2,0,1,32,32,0,0,2,0,2,0x38,255,0,011,01,0,36,32,01,0,0x1,010 -,0,0x6,1,32,02,64,0,6,0x8,64,16,0,0,176,0375,0,0x3,1,0,0x2c,32,0,0x6, -64,0,2,1,0,013,0310,248,0,025,010,0,1,32,0,32,64,0,06,8,0,2,128,0,2, -48,0371,0,04,02,0,2,64,0,0x1,2,0,013,02,64,0,0x1a,0x2,0,3,164,0,01, -144,0,013,184,0372,0,0x6,0x4,32,0x2,0,0,128,0,15,0x8,0,017,64,0,0, -0x28,0,0x3,04,0,0,1,0,0x2,32,4,0,2,128,0,0,16,0,1,16,0,0,02,64,0,0, -0x28,0,0,32,0372,0,1,64,0,03,010,0,0,0x1,0,6,8,0,1,32,0,4,128,0,0,64, -0,0x12,64,0,2,01,0,03,16,0,07,32,0,7,56,253,0,010,0x4,04,0,31,16,0, -036,0310,0376,0,06,04,0,0102,152,0373,0,032,128,0,016,64,0,015,0x8,2, -0,016,0360,251,0,0,64,0,06,4,0,04,64,0,0x1,32,0,0x7,96,0,0,8,0,15,32, -0,0,16,0,0x16,01,0,1,56,252,0,04,16,0,0,0x12,0x4,0,016,64,0,1,64,0104 -,0,15,32,0,0,4,32,0,01,32,0,0x1,2,0,0x2,64,0,02,2,0,1,32,0,010,168, -0371,0,07,010,0,016,1,0,13,72,0,2,24,0,2,128,0,7,0x1,0,016,04,128,0,0 -,0x8,0373,0,0x7,128,0,16,64,0,025,0x8,0,06,2,0,011,128,0,5,48,0371,0, -15,128,2,0,0x1,146,32,0,0,72,0x1,0,0,32,01,1,021,0,16,48,2,0,07,0x1,0 -,0x2,32,0,0x4,0x3,0,04,128,8,48,0371,0,16,02,1,0,04,32,0,026,16,0, -0x12,0x2,0,05,184,0376,0,017,128,0x5,0x2,0,0,036,0,1,0x78,0,1,224,0x1 -,015,0,021,074,0,8,014,0,0x1,014,0,04,192,0,5,0x3c,0,0,0x28,253,0,017 -,128,36,0,0x1,012,0x21,0,0,0x28,041,0,0,160,8,04,0,021,52,0102,0,07, -12,0,1,4,0,0x4,64,144,0,04,52,0,0,48,0376,0,16,04,0,01,014,0,0x1,48,0 -,0x1,192,0,0,48,04,0,16,48,012,0,07,054,0,1,48,2,0,04,0x23,4,0,3,48, -0102,224,0372,0,15,128,4,0,1,012,0,0x1,0x28,0,1,160,0,0,56,0,021,0x3c -,0,0x8,017,0x4,0,0,56,010,0,3,128,3,0,4,0x38,0,0,0360,0374,0,16,2,0, -0x1,16,0,01,64,0,2,0x1,48,0,17,48,0,8,014,04,0,0,48,0,0x5,0x3,0,04,48 -,0,0,208,0373,0,16,02,0,1,16,0,0x1,64,0,02,0x1,48,0,021,0264,64,0,0x7 -,0214,0,0x1,48,0,05,0x23,1,0,0x3,48,011,120,0375,0,017,128,36,0,01,18 -,02,0,0,72,8,0,0,32,041,0,010,042,0,0x6,17,0,0x3,16,32,0,4,015,0,02, -32,0,0x8,32,0x48,0,1,0x58,0374,0,021,2,0,17,12,0,6,0x6,0,012,12,0,16, -24,0373,0,017,128,07,0,1,036,0,1,0170,0,0x1,224,0x1,0,0x8,014,0,06,6, -0,03,64,0,0x5,014,0,1,12,0,012,64,0,0x1,176,248,010,0,016,128,0102,02 -,0,0,0212,0x2,0,0,0x28,012,0,0,160,0x28,0,010,012,0,0x6,05,0,0x4,0x14 -,0,0x4,014,0,0x1,04,0,012,4,0,01,0172,252,0,16,03,0,01,12,0,01,48,0, -0x1,192,0,011,012,0,0x6,5,0,3,192,36,0,04,32,0,1,176,0,012,0101,0,01, -16,0376,0,017,128,02,0,01,012,0,1,0x28,0,01,0240,0,026,0360,0,5,03, -0x4,0,0,0x38,0x8,0,0x8,96,0,2,16,249,0x4,0,15,0x4,0,01,16,0,1,64,0, -0x2,01,0,025,192,0,010,48,0,012,64,0,01,0141,0372,0,16,0x4,0,1,16,0, -01,64,0,0x2,0x1,0,21,192,128,0,7,48,0,015,0360,0377,0,0,136,0,01,32, -0x2,0,011,128,0104,8,0,0,0122,32,0,0,72,34,64,0x24,0x1,2,021,0,16,48, -0x2,0,7,01,0,02,32,0,12,0xc8,0374,0,057,16,0,011,128,0,017,0377,0140, -0,0x1,128,01,0,012,128,0x7,0,1,036,0,1,0x78,32,3,224,01,014,0,021,074 -,0,011,0142,0,0,014,0,015,184,251,0x28,0,1,128,0,013,128,2,8,0,0,0112 -,32,0,0,0x28,0x4,0x1,160,0x8,0x6,0,17,0x34,0102,0,07,32,32,0,0,4,0, -015,146,0375,128,011,0,01,06,0x2,0,012,3,0,1,014,0,01,48,0,0,0114, -0xc8,0,0,48,0x2,0,16,48,011,0,010,0202,0101,48,0x8,0,014,0x28,248,192 -,01,0x1,0,0,7,0,012,128,2,0,01,012,0,01,0x28,0,0,14,0240,0,0,0x38,16, -0,016,01,0,0,074,0,8,03,224,01,0x38,0,13,0130,0372,132,1,0,1,6,0,013, -4,0,0x1,16,0,01,64,0,0,12,0,0,01,48,0,017,0x4,0,0,48,0,011,0202,0x1, -48,0,015,0311,251,128,1,0,1,6,0,013,4,0,0x1,16,0,1,64,0,0,014,0,0,0x1 -,48,0,017,4,0,0,0264,64,0,07,12,128,1,48,0,13,0130,248,0,0x4,16,0x48, -0,8,128,0104,0,1,18,021,0,0,0x48,0,01,32,05,0,16,1,0,1,0102,0,7,015, -128,17,0,0,32,0,02,2,5,0,0x3,0240,01,128,0x8,0x18,0372,0,021,02,0,04, -32,0,02,01,0,0x1b,014,0,0,128,0,010,32,0,0,128,1,0,01,224,0371,0,0x4, -192,0,011,128,07,0,1,036,16,0,0,0170,0,1,224,1,0,16,0x5,0,0,0x3c,0,8, -014,224,01,014,0,0x3,0x8,4,0,0,24,0,01,128,01,014,0,0,0x38,0372,0x4,0 -,3,192,02,01,0,7,128,2,0x2,0,0,012,0,1,0x28,042,0,0,160,0x4,01,0,017, -5,0,0,064,0,010,12,160,021,6,0,3,0120,0,1,8,0,0x1,128,0x1,04,0,0,0252 -,0374,014,0,0x4,0104,0,011,3,0,01,014,0,01,48,0,0x1,192,0,023,48,012, -0,010,0202,0101,48,0x1,0,2,128,16,0,0,0140,04,0,1,64,48,0102,32,251,0 -,04,112,0,011,128,2,0,01,012,0,01,0x28,0,0x1,0240,0,021,8,0,0,074,0,8 -,0x3,224,1,0x38,16,0,0x2,036,0,0x1,0x78,64,0,0,96,0,0,56,0,0,0x28, -0374,010,0,3,192,32,0,011,04,0,01,16,0,0x1,64,0,02,1,0,18,48,32,0,0x8 -,128,01,48,0,03,010,0,6,064,0,0,193,0372,0,0x4,192,4,0,011,0x4,0,01, -16,0,1,64,0,0x2,01,0,18,52,02,0,8,0240,05,0x32,0,03,0x58,0x8,0,0x1, -012,0,02,48,0,0,152,0376,0,04,16,0,011,128,0x4,0,0,0104,18,041,0,0,72 -,0102,64,0x24,021,0x2,0,15,8,0,0x3,16,042,0,0x4,015,0,0,16,0x6,0,02, -128,26,0,01,010,0x24,0,0,160,0,02,144,0373,0,021,02,0,0x19,011,0,01, -16,0,7,014,0,02,010,0,02,24,0,05,01,0,1,224,248,0,04,192,0,011,128,7, -48,0,0,036,0,0x1,120,64,3,224,0x1,0,0x12,014,0,1,64,32,0,4,014,224, -0x1,0,0x2,48,0,0,0x1e,0,0x2,64,0,0,0140,1,0,0x1,176,0371,0x8,0,0x4, -0104,0,0x8,128,042,18,0,0,012,32,0,0,0x28,04,1,160,0,0,02,0,07,128, -0x1,0,7,04,0,01,128,0,5,014,0240,01,0,0,8,0,0,16,0,0,02,16,0,1,0x4,0, -0,0240,0,2,0242,254,0,4,192,0x28,0,011,3,192,0x48,014,0,1,48,0,0,12, -0310,0,021,17,0,0,48,012,0,0x1,132,0,04,128,0202,0101,0,0,0x8,0,0,192 -,0104,0130,0,4,192,0,2,48,255,0,4,48,0,011,128,2,224,0,0,012,0,01, -0x28,0,0,016,0240,0,0x13,074,0,0x1,0360,0,0x5,03,224,01,0x2c,0,01,224 -,0,0,0x1e,16,0,0,0130,32,0,0x1,1,0x1,0,0,184,0373,04,0,3,192,0,012, -0x4,192,0,0,16,0,1,64,0,0,014,0,0,01,0,0x8,64,2,0,0x7,48,0,0x1,64,0, -06,128,01,1,0,01,192,0,0,24,0,0x1,32,0,0x2,0101,0,01,041,254,0,4,192, -132,0,011,04,192,0,0,16,0,01,64,0,0,014,0,0,1,0,010,64,0,010,48,0,01, -192,0x8,0x1,0,04,0240,021,136,8,0,0,192,0,0,24,010,0,0,64,024,0,0,128 -,16,0,1,176,255,0,4,16,0,0x2,16,1,0,2,136,0,0,145,0104,0,01,18,010, -0140,0x48,129,0,0,32,17,0,011,0x2,0,0x5,32,0,0x1,0102,0,0,0120,136,2, -0,03,0x4,128,021,04,129,6,0,0x1,012,0,0x3,128,48,0,0,04,0,0,176,248,0 -,021,0x4,0,07,128,0,21,128,0,05,8,2,128,16,010,06,0,0x1,16,16,0,1,32, -0,0x4,152,248,0,04,192,64,0,0,192,0,3,96,0,0,014,128,7,0,1,0x1e,0xc8, -0,0,0x78,0,1,224,01,0,0x8,64,0x4,0,05,0140,128,074,0,0x1,112,0,05,013 -,224,0x1,0,0,16,06,0,1,016,0,01,0x18,0,0,017,0140,0x1,0,1,216,0371,04 -,0,3,192,0,01,64,0,3,32,0,0,4,128,02,04,0,0,0212,64,0,0,0x28,129,0,0, -160,128,0,010,128,0,06,160,1,52,0,01,144,0,05,05,162,021,02,02,0x6,0, -0x1,18,0,0x1,0x8,0,0,015,0240,0,0x2,0342,0373,014,0,4,0104,0,01,0143, -0,0x2,128,1,0x31,0101,03,0,0x1,014,0,0,013,48,0,0x1,192,0,011,128,0, -0x6,128,05,48,011,0,0,64,0,01,011,0,02,06,128,5,0,0,1,128,0,0x1,0x8,0 -,0x1,96,0x2,054,192,0,0x2,56,0376,0,0x4,0360,0,0x1,128,03,0,02,192, -0x1,56,128,0x2,0,0x1,012,128,3,41,0,01,160,0,011,64,02,0,0x5,224,129, -0x3c,0,0x1,176,0,0,6,0,0x3,011,224,0101,014,144,1,0,01,026,0,0x1,120, -16,15,8,01,015,32,0130,0376,0x8,0,0x4,128,0,01,0x3,0,0x2,128,1,48,0,0 -,4,0,01,16,0,0,3,64,0,2,1,0,16,128,0101,48,32,0,0,64,0,0,0x18,0,0x3, -012,128,01,0,0,0x8,0,2,8,0,1,0140,0,0,014,010,0101,48,0,0,0141,251,0, -04,192,2,0,0x1,03,0,02,128,0x1,48,0,0,4,0,01,16,0,0,3,64,0,02,1,0,011 -,1,0,05,128,5,52,2,0,0,128,0,0,152,8,0,2,4,0240,0x5,0x2,0,0x3,16,0, -0x1,96,0,0,0214,128,0x4,48,18,0120,0371,0,0x4,16,128,128,0x8,0,01,042 -,0,0x3,128,0x14,0x8,0104,0122,0,0,0140,0x48,2,0,0,32,145,0,0,021,0, -0x6,64,0,013,0120,24,2,64,0,0,0x8,0,02,16,02,160,0102,0,01,0212,32, -043,010,36,0,0,32,0,0,52,0,0,192,248,0,024,8,0,0x1,32,0,12,0x2,0,010, -16,0,0,128,0,0x6,0x2,0,02,4,4,0,0,16,0,1,1,0,0x3,48,0,0,0x28,0373,0, -0x4,64,32,6,0,1,24,0,4,128,7,48,0,0,0x1e,192,0,0,120,0,01,224,129,014 -,0,0x7,64,0,8,12,0,01,112,0,05,013,224,01,014,128,03,0,1,016,192,03,0 -,0,64,0,0,96,0x1,48,0,0,168,0374,8,0,3,128,02,2,0,0x1,010,0,0x4,128, -18,0x18,0,0,0112,72,0,0,0x28,36,0,0,0240,0,0,04,0,15,0x6,0,0,04,0,1, -144,0,05,5,0242,1,4,128,0x4,0,0x1,18,64,0x23,0x4,4,0,0,0240,0,0,48,0, -0,0x21,248,0,0x4,128,0102,152,0,1,96,64,0,0x4,3,192,0102,014,0,0,0x13 -,48,0,01,192,0,0,48,042,0,16,48,32,0,0,64,0,0,64,32,0,0,1,36,6,128, -0x5,48,0x1,0x2,0,01,8,0,0,013,32,0,1,192,0,01,8,0103,255,0,4,0360,0,0 -,034,010,0,0,112,0,04,128,02,224,0,0,012,128,03,0x29,0,01,0240,0,0,56 -,0,021,0x3c,0,01,176,0,0,0x6,192,0,0,0x18,0,0,011,224,0101,56,136,0x5 -,0,0x1,026,192,03,0132,32,0,1,01,015,0,0,0130,249,0x4,0,0x3,192,0,0, -24,0,0x1,0140,0,0x5,04,192,0,0,16,0,0,0x3,64,0,0x2,0x1,48,0,021,48,0, -1,64,0,0,0x18,0x8,0x3,0141,64,012,128,01,061,0,0,2,0,0x1,8,0,0,0x3,0, -3,0101,0,0x1,0202,0371,0,04,192,0x28,24,0,0x1,96,0,5,4,192,0,0,16,0,0 -,03,64,0,02,01,48,0,021,48,0,01,128,0,0,24,0,0,3,96,02,4,0240,17,48,0 -,0,4,0,1,16,0,0,013,0104,024,0,0,128,0,02,24,0372,0,0,136,064,0,01,16 -,0,0,128,0x48,041,2,34,64,0x4,136,0,0,145,4,0,1,146,16,0140,72,0202, -64,36,129,0,16,32,0,0x1,128,0,0,144,010,02,64,17,0144,042,0x8,0,0x2, -32,0,0x2,0202,0x4,0,3,0240,0,0,128,0x8,0x18,248,0,010,02,0,7,0x4,0, -031,8,0,01,16,0,0x1,64,0,0x1,0x2,0,01,4,2,128,0,8,32,0,01,0x1,1,0,0, -0x78,0375,0140,0,0,48,0,2,128,6,0,0,01,0x18,0,0,0x3,0140,0,0,014,128, -0x7,0,1,036,208,0,0,120,0,0,0x3,0140,129,0,16,128,01,014,0,0x1,0360,0 -,0x1,192,0x1,24,0,0,013,96,0,0,014,0,03,010,0,1,24,0,0x1,224,0,0,074, -0,0,0130,0372,0x24,0,0,48,17,0,0,192,0x2,2,0,0,02,010,0,0,01,32,0,0, -04,128,042,04,0,0,012,0101,0,0,0x28,132,1,32,8,0,1,4,0,05,16,02,0,0x5 -,136,0x1,04,0,0,0246,208,04,1,64,0x2,0x8,64,5,042,0,0,0x4,0,0x3,128,2 -,0,0,010,0,1,32,1,52,0,0,178,253,0214,011,48,021,0,01,0104,0x58,32, -0x1,0140,129,014,132,01,48,0x1,03,0,0x1,014,0,0,19,0x31,0,0,0214,64, -0x1,0,1,0x2,0,5,16,1,0,0x5,136,011,0x32,011,046,196,02,1,011,01,0140, -0102,0x6,128,05,48,012,0,2,152,0,1,96,021,0,0,64,0x1,48,0102,112,0375 -,192,129,074,0,01,48,0,0,034,192,2,112,0,0,14,192,129,56,0240,2,0,1, -012,128,3,0x28,0,0,016,0x24,0x1,0,01,0x7,0,0x5,144,3,0,05,232,1,0x3c, -128,0x7,240,0,0,06,128,02,112,0,0,011,224,0x1,57,0,0x3,036,04,0,0, -0x78,0,0x2,0x1,0x38,0,0,64,0377,136,01,48,32,0,01,128,24,0,0,1,0140,0 -,0,12,128,1,48,0,0,0x4,0,01,16,0,0,03,64,0,0,014,0,0,0x1,0,0,128,05,0 -,5,208,2,0,5,136,01,48,0,0,0x6,192,0,0,24,0,0,01,0140,0,0,6,128,0x1, -48,0,0x3,0x18,16,0,0,0140,0,02,0x1,0,0,8,0361,0373,128,01,48,01,0,1, -010,24,0,0,0x2,0140,0,0,014,128,1,48,0,0,04,0,0x1,16,0,0,03,64,0,0, -014,0,0,01,0,01,04,0,5,0x8,0x2,0,5,132,0x5,0x32,0,0,6,196,136,0x58, -0x8,02,0140,012,010,128,1,48,0,03,24,0,0x1,0140,0,2,01,0,0,0x1,48, -0375,0,035,04,0,06,02,0,7,0x8,0,011,64,0,14,021,0x28,0376,32,0,0,0x4, -128,0,0,16,0,0,0x2,64,0,0,0x8,0,0,0x1,32,0,0,0x4,128,0,0,16,0,0,0x2, -64,0,0,8,0,0,01,32,0,0,04,0,0x7,2,0,6,0x21,0,0x1,128,0,0,16,0,0,02,64 -,0,0,0x8,0,0,01,0,0x1,0x4,128,0,0,16,0,0,0x2,64,0,0,010,0,0,01,32,0,0 -,4,0,0,232,0376,0,0112,152,255,36,0,0,04,128,0,0,16,0,0,2,64,0,0,010, -0,0,1,32,0,0,04,128,0,0,16,0,0,02,64,0,0,8,0,0,1,32,0,0,0x4,0,15,32,0 -,0,04,128,0,0,16,0,0,02,64,0,0,8,0,0,1,32,0,0,4,128,0,0,16,0,0,2,64,0 -,0,010,0,0,0x1,32,0,2,0311,254,014,04,0,0x1,16,0,1,64,0,0,0x8,0,0,0x1 -,32,0,0,04,128,0,02,0x2,0,0x1,0x8,1,0,0,32,0,01,128,0,017,64,0,0,010, -0,4,128,0,0,16,1,02,64,0,0,136,0,0,01,32,2,0,0,128,16,021,0,0,2,64, -136,136,0,0,0343,0372,128,128,0x4,0,0,2,0x12,0,0,8,0x8,0x1,0x21,32,4, -132,128,16,16,0x2,64,64,0x8,0,0,1,32,0,0,4,132,0,0,16,16,0,16,4,128,0 -,02,2,0,0x1,012,32,0,0,32,0,0,0x4,16,0,0,16,64,0,2,8,0,4,16,24,254,8, -0,64,16,0,7,0242,0375,0,01,0x4,0,0x1,16,0,011,128,0,0x2,0x2,0,01,8,0, -01,32,0,021,32,0,0,0x4,128,0,0,16,128,2,0,3,1,32,0,1,128,0,0x2,0x2,0, -01,8,0,0,01,0,3,136,0375,0,0112,152,255,0,0x36,0x1,0,18,152,0376,0, -0x3,01,0,012,010,0,03,0140,0,0,64,0,0,32,0,024,0x2,64,0,0x2,01,0,0x2, -1,0,2,2,0,05,2,4,0,0x3,32,0,0,96,251,128,0,0,64,0,0,2,0,0,0x1,0x8,0,0 -,1,32,0,0,0x4,128,0,0,16,0,01,64,0,0x4,128,04,64,0,0,16,0,16,01,0,2, -16,0,0,32,0,0x3,8,0,0x6,02,0,0x1,1,0,1,128,128,16,16,0x38,0374,0,025, -01,0,063,152,254,0,0,01,0,01,04,0,1,16,0,0,2,64,0,0,0x8,0,0,0x1,32,0, -01,128,0,05,8,0,01,32,0,36,8,0,7,0360,0377,0,02,32,0x2,32,0,010,010, -160,0,0,129,0,3,01,0,0,0x4,0x28,0,0,17,0x8,0,23,2,0,0x1,04,0,0x7,16, -128,0,3,64,0,0,8,176,0374,0,0x8,2,0,0x29,16,16,0,0x8,32,0,012,136, -0375,0,0x2,16,0x1,32,0,1,64,0,05,010,16,0x1,34,0,3,01,0,0,0x2,0104, -128,010,16,0,16,160,0x5,0,2,02,144,0,0x2,0x2,0,01,16,0,1,16,0,0x1,010 -,0,0,0x1,0,02,128,0,0,16,48,0373,0,0,64,0,0,012,0x4,128,32,0,0x1,64,0 -,0,16,0,02,16,8,0,0,64,0,0,0x8,0,0x1,32,0,0x1,128,0,0,16,8,0,16,0x4, -010,0,0x1,128,0,4,8,0,0x1,128,0,0,02,64,0,5,0x4,0,0,73,024,011,0240, -0377,0,0x1,0x1,010,0,01,128,0,3,32,0,2,0x4,0x4,0,0,16,0,0,4,0,0x1,010 -,0,0x1,32,0,0,04,32,0,021,32,0,12,0x4,128,0,05,02,0,0,128,010,16,120, -0372,0,03,04,128,0,3,02,0,45,04,0,12,128,0,02,216,0375,0,0x29,04,0, -0x6,16,0,0x17,216,0372,0,054,64,0,025,16,0,5,216,0376,0,0,1,0,0x5, -0140,0,0x1,1,0x2,0,013,16,0,0x26,32,0,0x8,184,0371,16,0,4,64,0,011, -010,0,1,0x2,0,0x21,64,0,03,32,0,0x1,128,0,2,1,0,0x4,32,0,0,236,0374,0 -,05,16,0,36,64,0,29,136,0373,0,0112,152,255,010,0,05,01,0,0102,0262, -0374,0x14,0,73,0310,0373,0,012,128,0,5,64,0,8,64,0,0x2d,16,0373,0,015 -,02,0,0x6,1,0,2,1,0,0,128,0,36,32,0,7,128,0376,0,0112,152,0377,0,04, -32,16,0,0103,136,0375,0,0112,152,0377,0,026,64,0,0x1b,16,0,0x15,136, -0372,0,1,128,0,0x2,0x2,0,58,0x8,0,07,0x38,0375,0,017,64,0,4,02,0,0, -0x8,0,0x16,04,128,0,0,02,0,0x3,0x8,0,01,32,0,0x8,010,0,0,1,0,0x2,32, -0375,0,062,1,0,026,136,254,0,0x28,32,0,0x5,128,0,0x5,0x8,0,013,0x8,0, -0x5,16,0375,0,0x4,64,0,0x2b,02,0240,0,03,32,0,05,02,0,0x4,32,0,4,24, -0373,0,37,128,0,3,64,0,02,0x2,64,0,0x5,4,0,3,2,0,0x6,04,0,0x5,0120, -0375,0,06,16,0,017,128,0,0,64,0,023,64,0,2,64,0,0,32,0,04,02,128,0,02 -,0x2,0,0x1,0x4,0,06,232,0372,0,0x1,16,0,0x1,64,0,02,010,0,7,046,0,0, -16,0,01,0x8,0,026,64,0,0x3,0x4,128,0,0,48,0,0,4,0,0,0102,0,4,64,0,0, -128,0202,0,01,2,0,01,32,010,248,0,38,8,0,042,144,0377,0,052,32,0,036, -184,0375,0x4,0,04,32,010,0,0,01,0,0,32,4,0,1,16,136,0,0,0104,32,04, -010,1,0,02,0202,0,1,32,0,16,16,010,0,7,0x4,64,0,0x1,0x8,0,0,0x1,0,0x3 -,042,0,04,16,192,0372,0,061,64,0,0,0x8,0,0,1,32,0,01,0x2,0,0x8,16,0,0 -,2,128,64,16,0,0,248,248,0,0x5,0124,0x4,128,0,1,32,02,0,01,010,16,01, -042,64,4,136,0,0x3,0104,0,1,16,0,16,010,025,0,0,16,0,0,2,64,0,0,8,0,0 -,02,72,0x28,0,0,16,024,0x2,0,0,010,0,0,012,031,0,0,0x1,32,0,0,05,16, -0x28,0375,128,0,0,32,0,03,8,5,012,160,16,164,02,0,0,144,015,0,0,0101, -32,0x28,05,0x1,0,0x1,0x4,2,0x4,0,015,01,0,0x1,128,0102,128,041,04,0,0 -,0x2,16,0202,0,0x1,024,32,0,01,0x1,34,160,0,0x1,64,0,0,013,32,0,0,024 -,136,043,0,0,0x8,208,0372,128,0,0x5,02,04,0,0,32,32,02,02,0,0,16,8,0, -0,024,128,8,0x4,0x2,0,01,4,8,0,021,128,0,0,01,0,7,16,0,8,64,0,0,32,0, -0,0x4,64,0,01,16,010,249,0,01,16,0,0x5,1,0,0x5,32,0,24,0x2,0,0x5,01,0 -,0x1,0x8,04,0,0x8,1,0,2,2,0,0x2,128,64,0,0x1,152,0375,0,0x25,010,0,0, -8,0,041,144,0377,0,046,0x1,0,042,136,0376,0,015,0x4,0,0x1,0x8,2,0,0, -04,0,0,2,0,23,128,0,04,128,0,0x5,32,0,13,0x18,255,04,0,0x12,64,32,0,0 -,32,0,0x1,32,64,01,0,026,1,0,06,16,128,0,0,64,0,0,16,0,8,0361,0377,0, -41,1,0,036,128,042,252,0,0x1b,4,0,011,48,0,34,168,251,0,0x28,32,0,32, -152,0375,0,0112,152,255,0,0,64,0,14,5,8,0,0x7,06,1,0,45,224,252,0, -0x14,18,0,0,128,0,23,32,0,0x1,16,0,07,1,0,04,0x2,0,03,010,0,2,0240, -254,0,0x26,2,0,0,02,0,0,0140,0,036,248,251,0,0101,0x4,0,07,216,0373,0 -,7,64,0,0,0x8,0,0,0214,0x4,0,6,64,0,34,0101,8,0,3,16,0,3,8,04,0101,32 -,0x1,52,0,0,0360,0377,0,0104,16,12,136,64,0,0x1,0x48,251,0,013,017,4, -0,6,192,0,043,0x4,0,0x3,48,0,0x3,56,16,014,224,0,0x2,128,0371,0,0x8, -64,0,0,32,0101,0,7,64,0,042,128,0,4,16,0,03,8,0,0,0114,041,0x1,0,0, -042,48,253,0,010,0x3,0,0,0x21,0,011,139,0,041,128,0,0x4,192,32,0,03, -0101,136,010,1,0,0,021,8,0376,0,07,192,0,0,0172,0,0,14,0,7,192,03,0, -041,7,4,0,03,240,0,03,24,0,0,3,0240,0,0,014,0,0,64,252,0,011,01,0,012 -,3,0,34,0x8,0,3,192,0,5,010,128,0,02,208,253,0,8,32,0,0,0101,12,0,07, -64,03,0,041,64,0,4,208,0,04,129,04,0x4,0x1,0,0,0x4,176,248,0,06,0x12, -1,0,2,128,041,0,010,0140,64,0,013,042,0,0x6,021,0,010,104,0,013,8,0x4 -,0,0,32,0,0,064,0,0,0x4,251,0,6,8,04,0,0x1b,014,0,6,06,0,026,64,0,0x4 -,248,253,0,06,016,0,0x3,3,0,011,0x78,0,12,014,0,06,6,0,010,120,16,0, -015,96,1,0,0,16,160,0377,8,0,05,18,0,03,0x1,0,0,32,0,7,0x8,021,0,013, -012,0,06,05,0,0x8,010,01,0,013,012,0,0,0240,0,02,195,0372,0,06,16,0, -03,0114,0,012,0202,0,013,012,0,06,05,0,010,0140,04,0,013,2,0,0,192,0, -01,17,0161,255,0,6,012,0,03,016,0142,0,0,0x1,0,06,16,0,0x1e,0170,16,0 -,012,24,64,0,0,32,01,014,0,0,168,0377,4,0,5,8,0,0x3,12,0,0,128,0,7,96 -,0,054,32,0,0x1,1,0,1,0261,249,0,6,16,0,0x3,13,128,021,0,0x7,0140,64, -0,29,96,132,0,012,64,04,0,0,128,0,1,0x4,168,0372,176,0x21,0,04,0x12,0 -,01,8,0,0,0214,0x4,0,5,0x18,0,0x1,96,64,01,32,0,0x1c,0202,0,7,2,64,32 -,014,014,128,32,0,0x1,0x1,224,0377,0,06,010,0,014,0x8,0,054,03,0,02, -010,0,1,0x8,24,0374,0,0,64,0,4,0x16,0,0x3,017,0,0x6,036,0,01,0x78,0, -036,120,0,011,010,0,0,0142,0,0,03,0144,01,014,0,0,216,0374,12,8,0,0x4 -,012,0,1,0140,32,129,4,0,0x5,02,011,0,0,0x8,024,128,0x8,32,0,032,104, -0,012,023,0,0,0202,129,160,0,0,4,0,0,0232,254,0x4,011,0,04,014,0,0x2, -041,0,013,0202,64,0x4,0,27,0140,0x4,0,7,128,0x8,013,64,0101,0x2c,196, -0,0,48,0,0,64,0373,224,0101,0,04,18,0,1,24,0,0,14,0,06,28,0,1,16,0,0, -03,0140,0,0,1,0,07,16,0,0x6,010,0,0x8,120,16,0,07,036,192,128,24,0,0, -2,32,1,56,010,0x78,255,4,0101,0,0x4,0x8,0,016,0140,0,1,128,129,0,010, -0x2,0,0x6,0x1,0,024,03,0101,0,2,01,48,0,0,57,254,0,0,16,0,04,16,0,0x2 -,0101,014,0,0x6,24,0,01,0140,010,014,01,16,0,0x8,4,0,6,2,0,011,021,0, -0x8,0x2,011,0140,0104,0,0,129,0,0,48,0,0,0360,0371,32,0,012,0x2c,16,0 -,0,024,0,4,0x3,0,0x1,64,0,013,16,0,06,010,0,5,0x2,64,16,0152,0,03,024 -,0202,6,0,03,16,8,014,0,0,32,0,0,0x34,0,0,208,248,0,14,32,0,024,014,0 -,0x6,06,0,0x8,0140,0,0x3,32,32,06,0,0x4,0x1,0,05,64,249,0140,0,012, -017,0,0x1,0x2c,0,0x3,6,0,01,0x78,0,27,6,0,0x1,0171,0,0x3,16,0,0,0x6,0 -,0x2,192,0,0,64,0,01,0140,1,48,8,224,251,0x28,0,012,129,0x4,0,0,024,0 -,03,0x2,0,0x1,104,0,12,012,0,6,5,0,0x5,02,0,0,32,104,0,03,32,0,0,0246 -,0,0x2,64,0,0x1,0202,0,0,0240,0,0,176,0,0,0172,248,128,01,02,0,013, -152,32,0,0x2,24,04,0,0,0140,0202,0,032,152,04,32,0140,0,03,16,0,0,06, -2,0,02,0x3,0140,132,0,0,192,0,0,48,0,0,0x58,0376,224,0x1,0,011,016,0, -01,32,0,0x3,0x1c,0,1,112,0,014,4,0,06,0x2,0,0x5,034,192,0x2,0161,0,3, -0x2c,128,0x7,0,0x2,192,3,0x1a,0,01,32,1,074,0x8,0310,0377,132,01,0,12 -,32,0,0x3,0x18,0,1,0140,16,0,013,04,0,0x6,2,0,5,0x18,0,1,0142,0,03,16 -,0,05,0x3,0140,32,0,01,0x1,48,0,0,49,248,128,0x1,0,011,014,0,0x1,16, -012,0,0x2,0x1a,0,1,96,4,0,013,2,0,6,01,0,05,26,0,0,16,104,0,0x3,32,0, -0,026,0x2,0,02,3,32,0,1,128,0,0,48,8,0,0,0374,128,0121,0,011,128,0x1, -0,0,0x4,0,0x4,0x3,0143,0,0,64,0,02,4,0,07,010,0,06,04,0,5,0130,0,1, -0x28,36,0,0x3,128,0,03,64,3,8,0,01,32,0,1,0x1,184,0374,0,27,48,0,017, -0x1,0,05,0x18,0x8,0,014,3,0,0,32,0,3,8,0,0,0377,224,0101,0,011,03,0,1 -,054,0,3,0x6,192,0x3,120,0,12,4,0,0x6,010,0,0x5,0x1e,0,0x2,64,0,012, -64,0,01,0140,01,014,0,0,0x48,0371,0x28,04,0,011,01,0,01,024,0,3,2,64, -32,0151,0,4,16,0,0x6,16,0,6,8,0,5,0x1a,0,0x8,128,0,04,04,0202,0,0, -0240,0,0,4,0,0,0163,0376,0,0,8,02,0,010,054,0,1,152,32,0,02,0x58,04,0 -,0,0140,0202,0,03,0102,2,0,5,0x2,0x1,0,05,1,0,05,24,0,0x2,2,0,4,16, -0x2,0,2,013,041,129,0,0,192,0,0,48,0x2,0231,0375,64,0,012,016,02,0,0, -32,0,0x3,28,128,0x3,112,0,0x3,014,128,0x2,0,5,64,0x1,0,014,28,0,0x1, -24,16,0,03,128,1,0,0x2,192,03,24,0,01,32,01,56,010,208,0373,132,01,0, -011,014,0,0x1,32,0x8,0,02,0x18,0,1,96,16,0,032,0x18,0,010,0x6,02,0, -0x2,3,32,0,0x2,01,48,0,0,193,248,128,01,2,0,010,015,0,0x1,16,0x2,0,02 -,0x1a,0,0,0x3,0140,01,0,2,128,32,0,025,0x18,0,02,16,0,4,64,0,0x3,0240 -,32,0x24,0,0,128,0,0,48,0,0,160,253,144,0121,0,0,128,0,0,16,0,0x1,64, -0,2,128,0x1,0,0,164,32,0,0,208,0,0,0x18,64,0,0,0140,64,0,0x3,128,2,0, -05,64,1,0,12,18,0,1,0x8,0,1,32,0,5,02,64,16,0x28,0,0x1,32,0,0,4,6,24, -0374,0,14,16,0,0x4,8,0,0,0140,0,034,8,0,12,131,0,0,32,0,0x4,0x28,0372 -,224,01,01,0,0,06,4,64,0,4,0x3,0,01,0x2c,0,03,036,0310,0,0,0170,0,5, -0x4,0,6,02,0,12,16,0,0x1,24,0,01,0140,0,0x8,0142,0,1,0140,1,0,0,16,32 -,0373,0x2c,010,0,6,64,0,0x1,01,0,01,024,0,02,64,0202,64,0,0,104,0,27, -0x48,0x8,0,0,010,0,1,32,32,0,06,011,32,021,0,0,0240,0,0,32,02,146,248 -,04,010,0x2,0,0,6,0x1,0104,0,2,1,0,0,014,0,0x1,0x28,0,02,0102,0,1,163 -,0140,0202,0,0x4,0x1,0,05,128,0,015,0120,16,0,0,0140,02,0,0x1,132,0, -0x4,64,0x8,0143,0140,16,0,0,192,0,0,0240,16,208,0374,64,0,0x1,128,1, -48,0,1,192,0,0x2,14,0x2,0,0,32,0,1,48,0,0,034,128,0x3,112,0,05,3,0,05 -,128,1,0,014,14,0,1,112,16,0,0,64,0,0x5,06,192,03,0x78,0,0x1,32,01,12 -,0,0,192,252,132,129,0,1,6,0,0x4,01,0,0,014,0,01,32,0,04,64,3,0,0,16, -0,0x1a,16,16,0,0,0140,0,0x1,128,129,0,0x4,0x18,16,02,0140,0,02,01,48, -0,0,0x29,0372,128,011,0,01,0106,196,16,0,1,043,0,0x1,13,0,1,32,0,0x2, -0202,24,64,3,0,0x6,04,0,0x6,2,0,014,8,0,1,96,0,2,16,0,0x4,24,128,041, -0141,0x14,0,0,128,0,0x1,041,216,0377,32,0,0,04,0,6,0x8,0,0,054,48,0, -0x6,0103,0,0,8,0,0,1,0,2,128,0,0x6,64,0,011,128,0x16,16,72,02,64,03, -104,0,0,0101,0x28,0,3,16,0,0x1,64,8,014,0,1,32,0,0,0264,0x8,72,0375,0 -,035,02,0,6,0x1,0,012,194,0,0x3,0141,0,012,03,0,0x4,32,0,0,64,0377, -128,01,48,0,6,96,0,0,15,4,0,0x5,06,192,0,0,0170,0,0x4,128,0,0x6,64,0, -014,128,0x6,0,0x1,0x2,0,01,0144,0,3,48,0,2,03,0,02,0140,01,48,0,0,24, -0372,136,1,48,0,07,32,0101,0,0,16,01,0,03,02,64,0,0,0151,0,01,4,0,011 -,0x4,0,012,128,0,0,4,02,0,0,32,0,01,128,32,0,3,16,16,0,0x1,19,01,0,01 -,0240,0,0,48,011,063,0371,128,0101,0,0,021,0,0x6,041,0,01,136,0,0x4, -0130,0,0x1,0140,0202,32,4,0,011,8,0,6,0x3,0,2,0102,196,136,152,0,0, -0x21,02,02,136,128,0105,0,0x3,0102,0,1,34,2,36,0,0,192,0,01,04,021, -0372,224,0x1,014,0,06,24,0,0,016,224,1,0,0x4,28,132,0,0,0172,0,0,3,0, -0x15,128,07,176,0,0,036,196,3,24,16,03,196,01,0,02,32,0,01,192,0,0,24 -,0,0x1,32,1,12,0,0,0322,0375,132,0x1,0,17,0x18,64,0,0,1,16,0,027,2, -0101,0,0,24,0,0,01,0,02,136,01,0,0x2,192,64,0,01,0x2,0140,0,0x2,01,0, -0x1,0104,248,128,021,02,0x4,0,6,0101,014,0,0,32,0,4,0x1a,0,0,0x23,0, -01,0x2c,010,0,025,0x24,128,64,032,0,0,02,1,16,64,0240,0x1,0,03,010,0, -01,011,0141,36,0,0,128,0,0x1,010,0310,0371,32,0,0,04,128,0,0x7,128, -161,5,0,0,128,0,0,192,0,0,152,16,0,0,0140,64,0,02,176,0,15,160,133, -0x34,128,0x6,208,132,26,0,01,104,0,0,0101,0x28,0,0,0x34,0x6,0,0,16,0, -0x1,64,16,0x8,0,0,128,32,1,52,0x21,010,0372,0,12,128,1,0x1,0,2,64,0, -01,128,0,05,16,0,16,48,0,0,0x6,0,1,0x18,0,1,96,0,012,0x3,0x1,0,01,136 -,0,0,48,0,0,8,0371,0140,0,01,128,01,0,6,3,128,01,01,0,1,240,64,036, -0xc8,0,0,120,0,03,074,32,0,6,012,0,0x6,5,0,0,61,128,0x7,0,0,64,24,0, -01,0140,0,01,0144,0,01,16,0,0,48,0,2,03,2,0,0,0x3,96,0x1,48,010,16, -248,0x28,0,0x1,144,0,0x7,1,128,021,0,02,0x12,4,0202,64,0,0,8,16,0,02, -0x4,02,04,0,0x5,16,0x2,0,05,8,0x8,0x34,128,6,0,0,0x8,0x18,0,1,0140,0, -0,128,32,0,1,02,0,0,16,0,0x2,013,0,0x1,1,160,0,0,48,2,02,0373,128,145 -,176,16,0x6,0,06,0214,0202,17,0x1,0,0,16,0x2,0,0x2,147,0,0,0202,0,4, -02,0,05,16,1,0,05,136,16,061,0,0,6,64,136,0,0,01,0,0x1,1,132,128,0121 -,16,042,0,0,192,0x28,0,1,012,0,0,0x12,0,0,192,0,0,48,042,64,0372,192, -01,12,128,07,04,0,5,016,224,1,0,0,128,01,224,0,0,034,128,0x3,16,0,0x3 -,56,0,0,7,0,05,144,3,0,0x5,232,01,56,128,07,0360,0,0,0x6,010,0,0,0x18 -,16,03,0344,1,074,0,1,224,0,0x1,192,128,24,0,0,02,0x28,1,074,0,0,216, -249,132,1,0,0x1,06,0,06,014,0,0,1,0,0x1,6,0,3,3,96,0,04,128,5,0,0x5, -208,0x2,0,0x5,136,0,0,48,0,0,0x6,64,0,0,0x18,4,0,3,136,01,16,0,01,192 -,0,02,0x2,0140,0,0,014,136,0,0,32,0,0,0141,254,128,1,128,32,06,0,0x6, -015,0,0,16,1,0,0,16,196,0,0,0x18,64,03,0140,0202,0,02,48,0,0,4,0,0x5, -0x8,02,0,0x5,4,129,48,0,0,6,128,64,0130,0,0x3,64,160,0x1,32,16,0,0, -208,0,01,128,1,0141,8,054,0,0,01,0,0,042,0,0,0375,0,29,4,0,0x6,02,0, -027,64,0,012,184,251,32,0,0,4,128,0,0,16,0,0,2,64,0,0,010,0,0,4,32,0, -0,0x4,128,0,0,16,0,0,0x8,0,0,129,8,0,0,01,32,0,0,0x4,0,7,02,0,6,041,0 -,0,04,128,0,0,16,0,0,4,64,0,02,01,64,0,0,4,128,0,2,02,64,0,0,8,0,0,01 -,32,0,0,4,0,0,0xc8,248,0,067,64,0,021,152,251,054,0,0,04,128,0,0,16,0 -,0,2,64,0,0,0x8,0,0,0x1,32,0,0,04,128,0,0,16,0,0,2,64,0,0,8,0,0,1,32, -0,0,04,0,017,32,0,0,04,128,0,0,16,0,0,02,64,0,0,0x8,0x1,1,32,0,0,0x4, -128,0,0,16,0,0,0x2,64,0,0,8,0,0,0x1,32,0,0,04,0,0,0363,248,0104,0,0x2 -,0x1,0,0x1,0x8,0,03,32,0,2,02,0,01,02,64,0,0,8,16,0,03,128,16,0,021, -042,0,0x3,05,0,0,16,0x4,0,1,64,0,07,16,0,0,32,64,0,0,128,0,0,137,0377 -,0,01,05,0,1,16,0,0x1,64,0,0,010,0,1,36,0,1,144,0,01,64,0,0,010,0,0,1 -,64,01,32,0,021,32,0,0x3,16,0,0x1,64,0,0x1,16,1,32,0,0,4,128,0,0,16, -32,0x2,64,0,0x3,04,0,0x1,16,012,248,04,0,73,0234,255,0,1,4,128,0,0,16 -,0,0,02,64,0,0,8,0,0,64,0x28,0,0,0x4,145,0,01,132,128,16,0120,0,1,0x1 -,32,0,1,041,0,016,32,0,0x1,193,32,18,0,0,0202,0x48,0,0,010,0,0,0x1,32 -,0x28,0x4,128,0,0,16,024,0x2,64,16,011,0,0,64,041,0,1,05,0x58,0375,0, -0102,02,0,0,16,0,4,136,0375,0,27,32,0,0,128,0,06,64,0,014,16,0,0x8,4, -0,013,104,248,0,013,1,16,0,05,0x2,0,45,010,0,06,48,0377,0,18,1,0,0x36 -,152,0376,0,013,2,0,4,32,0,0,04,0,06,16,0,01,02,0,6,0x1,0,0x15,1,0,03 -,0x1,0,0,32,0,4,232,254,0,013,8,0,4,128,0,0,16,0,0,02,0,023,010,0, -0x19,0x8,0,01,32,0,0,48,0376,0,14,4,8,0,0,16,0,02,128,0,0x1,4,0,34, -128,0,0,16,0,0x4,16,0,0x4,64,0377,0,010,128,0,051,02,0x2,0,0,32,0,01, -042,0,0x1,16,0,0,64,32,0,5,128,0,0,16,0,0,208,0375,0,0x6,0120,0,0, -0120,2,0,3,0x8,025,0,0,32,0,0x2,0120,01,0,0,052,0,0x19,0x2,16,0,0,232 -,0,0,128,43,0,0x1,32,1,176,0226,0120,0,02,32,0x28,32,0,0,164,0,0,184, -0373,0,02,34,0,3,0x12,128,0,0,0104,145,8,0,0,16,011,0,02,2,0,07,42,0, -016,128,0,5,16,0104,0x2,0,0x4,48,0,0x2,0x2,0,04,031,128,046,245,0x26, -224,0371,0,011,02,0,03,16,32,0,013,8,0,016,32,0,06,16,0,0x5,16,0,011, -128,0,0,4,0,0,144,0372,0x8,0,0x6,0x4,0,42,2,0,0,1,0,4,0x4,0,8,4,0,0, -64,16,0x8,0x14,0371,0,035,0x4,0,0x6,02,0,043,248,0373,0,1,02,0,0x14, -128,0,0x4,2,0,6,0x1,0,16,128,0,012,32,0,0x5,128,0377,0,23,64,0,0x2b, -64,0,4,152,0377,0,0x3,16,0,6,02,0,61,168,252,0,7,128,0,48,128,0,01,16 -,2,64,0,0,010,0,0x3,4,0,0x1,16,0,0,248,0373,0,04,02,0,7,64,0,065,64,0 -,4,248,251,0,015,64,64,0,011,02,0,0x28,4,0,0x4,0x8,56,0373,0,037,1,0, -05,128,0,041,128,0242,0375,010,0,025,010,0,011,0x4,0,06,0x2,0,014,010 -,0,015,6,0,02,208,249,0,1,0x1,0,0107,136,0377,0,013,010,0,0x6,16,0,0, -2,0,06,0x2,0,0x1,16,0,0x3,0x1,0,35,176,0376,0,042,32,0,6,16,0,0x5,32, -0,0x17,136,0376,0,34,64,0,6,32,0,0,128,0,27,128,176,0371,0,036,16,0,6 -,010,0,0x1b,0x8,0,05,0104,0372,0,23,041,0,0x2a,0x8,0,05,0x28,0376,0,0 -,128,0,0,010,0,6,16,0,0x5,01,32,0,03,32,0,0,02,0,01,010,0,0x17,64,0, -0x2,01,0,0x8,01,0,05,0x78,0374,0,042,16,0,06,010,0,017,0x4,0,13,0120, -0372,16,0,0,16,0,1,96,0,02,0x1,0,0x2,128,0,07,1,0,01,0x4,128,0,0x1b, -16,0,0x1,128,0,0,16,0,0,0x2,64,0,0,12,0,3,4,0,0x1,24,0,0,0x28,248,0, -0112,152,255,0,015,32,64,0,17,2,0,0x6,01,0,0x5,8,0,0x1,32,0,13,4,0, -0x5,04,32,248,0,01,16,0,1,01,0,03,32,0,05,02,64,0,0x1,64,0,2,04,0, -0x28,04,0,0,128,0,04,010,252,0,024,0x2,0,6,32,0,15,4,0,0x1,16,0,0,0x2 -,64,0,0,010,0,4,128,0,0x5,010,144,0,0,32,0,03,0140,0377,02,0,64,64,0, -0x3,0x1,0,2,232,0375,32,0,8,0x1,0,2,132,0,7,01,0,02,128,0,27,01,0,7, -64,0,0x4,04,0,0,128,16,154,0371,0,0x1,32,0,2,32,0,02,010,0,02,1,0,0, -0x8,0,036,16,0,02,8,0,01,32,0,0x6,32,0,1,04,128,0,0x4,0x8,010,112,251 -,16,0,0,16,0,025,0x1,0,025,32,0,0x3,64,0,0,2,0,0,0x4,32,0,3,01,0,01, -02,0,4,64,0,1,0232,254,0,1,0254,0,02,64,0,02,16,012,0,0,64,0x5,0240, -16,0,02,208,0x2,0,0,64,01,0x1,0,0x2,05,0,0x3,16,0,6,8,0,4,48,0,0,128, -0x2,04,64,012,18,012,0x1,32,0,0,160,0,0,160,36,0,1,24,0,0,0101,1,0,0, -128,0x28,011,025,104,248,0,01,4,012,0,0x1,164,0,0,0x15,0,0,32,0106, -129,8,0,0,128,136,0,0,64,128,0,0,128,0,0,32,1,128,0x8,0,0,16,0x8,0, -016,32,0,0,024,0,0,02,16,136,16,0,0,0102,0120,0,0,0x8,1,0,0,132,0,3, -128,0,0,147,224,0x48,014,0240,04,0x4,43,0x78,252,0,2,8,0,0x1,32,0,0, -0x4,0,0,8,0,4,8,0,0,64,0,3,32,0,03,16,16,0,16,16,0,0,02,0,16,129,16,0 -,0,01,128,0,1,0x8,160,255,0,063,0x8,64,0,0,34,0,0,04,04,0,6,128,0,0, -32,0x8,0x2,0,03,248,0373,0,32,64,0,0x6,32,0,32,216,0375,0,043,0x1,0, -0x5,128,0,6,16,0,0x16,144,0376,0120,0x4,64,0,0x6,128,0,05,010,0,0,01, -0,04,16,0,01,64,0,16,4,0,03,0x2,0,0x1,0x8,0,01,32,0,012,010,0,0x4, -0124,0371,0,49,64,0,2,01,0,01,04,0,16,0xc8,0376,0,0112,152,0377,0,042 -,128,0,0x6,64,0,04,0x4,0,24,0120,255,0,1,4,0,0x1,16,0,01,64,0,3,32,0, -0x7,0x4,0,01,1,32,0,024,128,0,010,32,0,0x1,128,0,0,16,0,0,02,0,3,0x1, -0,1,04,128,232,248,64,0,041,16,0,0x7,16,0,8,04,0,19,152,251,0,1,1,0, -42,0x2,0,0,32,0,1,1,32,0,0,0x4,0,01,16,0,1,64,0,8,16,0,3,152,0373,0, -023,32,0,07,4,0,16,128,0,18,02,0x2,0,0x5,112,0377,0,15,4,0,015,32,0,6 -,16,0,12,02,0,014,64,64,0,0x5,0310,0371,0,12,4,0,0x4,64,0,0,72,0,0x6, -16,0,0x1b,32,0,01,128,0,0,16,0,0x5,0x1,0,01,4,0,0,168,0371,0,01,48,0, -0x8,128,16,0,0x1e,0240,01,024,0,01,16,0,0,012,0141,0,0x2,0x1,0,8,023, -0,6,112,251,0,02,16,0,052,32,0,03,010,0,016,0x1,0,05,16,253,0,01,074, -0,010,03,0,037,128,0x1,45,0,0x1,176,0,0,026,192,2,0,0x1,013,0,0x7,192 -,03,0,6,0360,0376,0,1,04,5,0,07,0x1,0,32,8,024,0,1,0120,0,0,012,64,1, -0,0x1,0x5,0,07,64,0,0,1,0,0x5,0xc8,253,0,013,054,16,0,037,0x8,25,64,0 -,0,0140,0,0,149,144,0x1,4,0,0,06,16,0,15,0x48,0372,0,1,56,0,0x8,017,0 -,037,224,0x1,36,0,0x1,144,0,0,16,64,0x2,0,1,011,0,7,128,03,0,0x6,224, -0374,0,013,014,0,037,128,0x1,041,0,01,128,0,0,16,0,0,0x2,0,01,8,0,16, -0360,251,0,01,48,0,0x8,014,0,0x1f,128,05,16,011,0,0,64,0x24,0x8,011, -145,0,0x1,0104,0x2,0,7,03,0,06,176,249,0,4,192,2,0x1,0,0,03,0,1,01,0, -010,32,96,014,128,16,0,011,042,0,0x6,17,0,0,04,0,1,16,0,0,2,0141,0,2, -0x1,0,16,16,0376,0,011,0x2,0,013,01,0,014,014,0,0x6,06,0,034,0140, -0377,0,04,240,0,1,192,3,0x1,0,0,12,0x4,0,6,192,0,0,120,0,0,3,0,012,12 -,0,06,06,0,0,054,0,1,176,0,0,026,192,2,0,1,013,0,16,128,251,0x8,0,3, -16,04,01,64,32,0,01,64,0,07,64,0,0,0x8,0202,0x1,0,012,012,0,0x6,5,0,0 -,024,0,01,0120,0,0,012,64,0x1,0,01,5,0,16,0242,0377,0,013,0214,2,0,7, -013,0,01,0x2c,4,0,011,012,0,6,5,0,0,0x18,64,0,0,0140,0,0,149,144,01, -0x4,0,0,0x6,16,0,017,216,0373,0,0x4,224,0,1,128,3,0,1,017,0,0x7,192,3 -,0162,0,0,15,0,0x14,0x24,0,1,144,0,0,16,64,0x2,0,0x1,011,0,16,0130, -0373,4,0,012,12,0,0x8,03,0,0x1,014,0,0x14,32,0,01,128,0,0,16,0,0,2,0, -01,010,0,16,185,248,0,0x4,192,0,2,0x3,0,1,0214,02,0,7,0x3,96,0,0,12,0 -,0x14,16,010,0,0,64,32,0x8,0x2,129,0,0x1,4,0x2,0,017,48,0375,0,02,02, -0,6,0x4,128,144,145,0,0x1,0x16,010,0,0x1,64,013,0,01,128,144,5,176,64 -,0,16,0x4,0,0,64,24,0,0,2,0141,0,0x1,132,01,0,2,128,0,12,0360,0374,0, -0x2,16,0,0x6,32,0,011,0x3,1,0,2,128,0,056,0x18,0376,0,0x1,014,0,6,24, -0,0,0x3,224,01,0,0,128,07,0,03,02,0x2,0,0,3,224,01,074,0,021,054,128, -1,176,0,0,026,192,2,0x18,0,0,013,0,16,32,0371,8,0,0,04,0,06,010,0,0, -01,32,010,2,128,128,0,0x3,17,0,1,1,32,32,0x4,041,0,16,0x14,128,0,0, -0120,0,0,012,64,1,0x8,0,0,5,0,0x3,0240,0,013,0102,0375,0,01,48,32,0, -05,0140,0,0,0114,0,8,35,01,0,0,0114,0,0x14,24,64,6,96,0,0,149,144,01, -0144,042,0x6,16,0,0x2,64,0,013,0130,0371,0,01,074,0,6,0170,32,017, -0xc8,01,0,0x1,0x7,0,02,192,0,02,017,196,0x1,0x38,0,021,36,128,0x7,146 -,0,0,16,64,2,0x78,0,0,011,0,0x2,128,0x1,04,0,012,176,0372,04,0,0,48,0 -,6,0140,0,0,014,0,8,0202,0,1,014,0,012,18,0,0x6,011,0,0,32,0,0,06,128 -,0,0,16,0,0,02,0140,0,0,010,0,3,6,0,013,217,0376,0,0x1,064,0,06,0140, -0,0,014,128,0x1,0,01,6,0,03,32,0,1,014,128,0x1,48,0,07,2,0,06,0x1,0,0 -,144,010,0x6,64,042,72,32,137,0140,0,0,36,0x2,0,0x2,16,02,0,012,104, -252,128,1,0,0x1,64,0,05,4,128,16,0,0,48,0101,6,192,0x48,0,0,64,8,0140 -,014,128,144,5,0x32,06,0,6,0x8,0,0x6,4,0,0,04,0,0x1,16,0,0,02,0141,0, -0x2,0x1,0,02,0102,6,0,2,0141,0x23,0x1,0,0x5,120,0373,0,0,128,0,02,2,0 -,04,32,0,0x5,2,0,3,1,0,12,18,0,0x6,011,0,16,0x2,0,2,02,0,06,168,253, -224,1,0,0,128,0x1,0,0x4,24,0,0,3,0,1,074,128,7,0360,0,2,01,0172,0,0, -0x3,224,0x1,074,0,021,054,0,1,176,0,0,026,192,2,0,01,013,0,01,014,128 -,0x7,0,1,6,0,0,3,0,6,184,248,0x28,32,0,0,128,0,05,010,0,0,0x1,0,1,04, -0241,32,24,16,0,01,0x12,0x8,129,01,32,128,04,0x21,0,06,8,0,06,0x4,0,0 -,0x14,0,01,0120,0,0,012,64,1,0,1,5,0,0x1,04,128,0,0,04,0,0,0x2,0,0,34 -,0x1,0,5,02,0377,0,03,0106,0x4,0,0x3,0140,0102,0214,04,0,0x7,128,0, -0x1,0114,4,0,011,2,0,06,01,0,0,0x18,64,0,0,0140,0,0,149,144,01,04,0,0 -,06,16,0,0,48,042,0,02,0x18,16,17,0x4,0,5,0140,0375,192,1,0,0,128,7,0 -,04,120,0,0,017,0,01,56,0,0,0x7,224,0,01,192,3,112,0,0,15,192,1,56,0, -7,04,0,06,02,0,0,36,0,1,144,0,0,16,64,0x2,0,01,011,0,0x1,0x3c,0,0,7,0 -,0x1,036,192,0x3,0,6,112,249,0x4,0,2,06,0,04,0140,0,0,014,0,010,1,0, -01,12,0,012,8,0,0x6,0x4,0,0,32,0,0x1,128,0,0,16,0,0,02,0,01,010,0,1, -48,0,0x3,24,0,0,0x3,0,06,0241,0374,128,0x1,0,1,06,0,04,0140,0,0,014,0 -,0x1,48,0,0,06,192,0,2,131,96,0,0,12,128,1,48,0,15,8,0,0,16,012,0,0, -64,0x28,136,16,0241,0,0x1,132,2,0,0,48,128,0x6,0,0x1,24,0,0,0x13,1,0, -5,168,0373,128,01,0,0x8,4,128,16,0,3,192,72,0,0x1,32,0,0x1,0x21,0,012 -,012,0,010,4,0,1,16,0,0,0x2,0141,0,0,104,0,0,0x1,0,07,64,013,0,0,132, -1,0,03,0254,248,0,0,128,0,0x8,32,0,012,01,0,0x1,4,0,011,32,0,16,0140, -32,0,011,02,1,0,0x5,144,249,224,01,0,0x7,24,0,0,3,0,04,240,0,01,192,0 -,02,0x4,010,0,011,0x2,0,06,5,0,0,054,0,01,176,0,0,026,192,0x2,96,0,0, -013,0,0x8,03,24,0,0,12,010,0,02,16,0374,0x28,0x8,01,0,0x6,0x8,0,0,1,0 -,04,16,132,0,0,64,0,2,0x48,0,012,02,0,010,024,0,1,0120,0,0,012,64,0x1 -,0140,012,0x5,0,8,34,011,0,0,128,0,03,0343,0377,0,011,0140,0104,0114, -8,0,0x7,03,0,0x2,16,0,0x2,2,0,5,32,01,0,05,02,0,0,24,64,0,0,0140,0,0, -149,144,0x1,4,01,06,16,0,0x7,011,0144,32,014,010,0,0x2,217,0373,192,1 -,0,07,120,0,0,15,0,4,224,0,0x1,192,3,2,0,0,017,0,024,36,0,01,144,0,0, -16,64,2,24,32,011,0,0x7,192,3,0170,0,0,017,0,03,194,0375,0x4,0,010, -0140,0,0,014,0,0x8,03,0,1,0x4,0,3,02,0,06,01,0,0x7,32,0x8,0,0,128,32, -16,0,0,0202,32,0,0,8,0x2,0,7,03,0140,0,0,014,02,0,2,024,248,128,01,0, -0x7,96,0,0,12,0,0x4,192,0,2,0x3,0,1,12,2,0,0x1,128,010,0,5,64,04,0,07 -,16,2,0,0,64,8,8,8,041,0,0,129,132,0,8,023,0141,0,0,054,0,3,0x38,255, -0,4,208,0,03,010,0,0,041,0,6,24,0,0,32,0,0x1,0x2d,0,0x12,32,8,0x6,128 -,6,16,0,0,02,0141,0,02,1,0240,1,4,0,0x2,010,01,0,3,128,0,0,16,0226,64 -,0114,0374,0,04,192,128,0,0x3,64,0,0,4,0,06,16,0,0,1,0,0,12,0x4,0,0x2 -,0x1,0,05,128,0,012,0x6,0,7,128,0x1,0,012,0x4,0,0,32,0,0,0x38,0372,0, -4,192,0,3,32,64,04,010,0,5,036,192,0,02,010,8,0,02,010,0,6,0x4,0,7, -054,0,0,06,176,0,0,026,192,2,0,01,013,224,01,0,0x2,48,0,5,03,0140,0,0 -,48,0,0,0x28,253,0x8,0,3,192,024,0,02,64,2,0x48,0,6,0202,0140,0,0x2, -0104,0,03,04,0,06,02,0,6,0x8,026,0,0,0x6,0120,0,0,012,64,1,0,01,0x5, -0240,01,0,02,16,0,5,01,32,0,0,32,021,131,254,0,05,0x2,0,0x3,128,128,0 -,0x8,013,02,0,0,0x2c,010,0,021,128,64,24,64,0x26,0144,0,0,149,144,0x1 -,0x4,0,0,0x6,144,01,0,0,0x2,0,0,192,0,5,054,128,1,17,0102,0151,248,0, -0x4,48,64,0,0x2,0x78,0,0,017,04,0,5,034,192,3,0,0x1,03,0,18,0142,0,0, -0x24,128,07,144,0,0,16,64,0x2,0,0x1,011,192,01,014,32,0,0,240,128,0, -04,017,0344,0x1,074,0,0,0172,254,0x4,0,3,64,0,03,32,0,0,4,0,010,3,0, -01,010,0,2,128,0x1,0,0x5,192,0,06,010,0,0,32,8,0,0,132,32,16,0,0,0202 -,0,0x1,0x8,0202,0x1,48,16,0,0,192,0,0x5,014,128,1,16,0,0,12,253,0,05, -16,0,0x2,96,024,054,0x2,0,05,0x1a,0,0,0x3,0,0x1,32,010,0,18,0x28,144, -0,0,16,64,0x2,136,32,011,0,1,0x24,128,1,48,0,0x1,192,0,05,12,128,1, -176,16,232,0372,0,011,010,0,0,0x21,0,07,64,0x3,0140,12,1,04,0,01,128, -0x4,0,5,0104,2,0,07,0x4,0,01,16,0,0,0x2,0141,0,2,1,32,0,02,64,010,0, -01,041,0,1,132,128,32,0,0x2,024,0373,0,012,64,0,0,04,0,07,02,0x1,0, -0x5,0x2,0,06,1,0,5,16,0,0x18,4,0,0x2,232,0377,0,011,32,64,4,010,0,7, -0x3,121,0,4,128,0,0x6,0104,0,8,0x2c,0,01,176,0,0,026,192,2,0,1,013,0, -0,64,0,0,128,0x1,0,01,0x6,0,0x1,24,0,0,0x3,128,129,0,0x2,0375,8,0,0x8 -,64,2,72,0,0x8,18,8,32,32,2,0,011,0x4,0,8,024,0,0x1,0120,0,0,012,64,1 -,0,01,0x5,0,0,8,0,0,128,0,02,2,0,1,8,0,0,01,0,0,8,0,0x1,147,0372,0, -012,01,128,1,0,0x7,137,0,0x1,32,2,0,011,010,0,0x6,5,0,0,24,64,0,0,96, -0,0,149,144,1,04,0,0,6,144,1,0x1,0,0,06,010,0,0,0130,16,0,0,0140,042, -014,129,01,0,01,129,0374,0,011,0x78,16,017,0,07,192,03,112,0,0,3,0, -0x14,0x24,0,1,144,0,0,16,64,02,0,0x1,011,0140,0,0x1,128,0x7,0,0x1,036 -,0,01,0x78,0,0,017,224,1,1,0,0,0162,255,0x4,0,8,32,0,0,0x4,0,8,03,0, -01,12,0,0x14,32,0x8,0,0,128,32,16,8,0202,0,0x1,0x8,02,0,0x2,6,0,1, -0x18,0,1,0140,0,0,014,128,0101,0,0x1,0134,0377,0,011,96,0x21,0114,02, -0,07,03,0142,0,0,4,1,0,023,16,0,1,64,0,0,010,0,0,1,0,01,0x4,0,0,0x28, -0,01,6,0,01,24,0,0x1,0140,0,0,12,128,05,0,0x1,0x38,248,128,01,0,04,24 -,64,041,010,0,0,0x5,132,1,48,0,1,192,0x48,0,0,0x1,32,0,01,0x5,04,0, -021,0240,1,0x4,0,1,16,0,0,18,0141,0,02,011,48,0,1,0102,0,0,192,0,0,24 -,0,02,132,0101,168,0x8,01,02,0120,0373,0,0,128,0,0x5,010,02,0x2,0,0x3 -,01,16,0,03,010,0,0,01,0,12,012,0,06,05,0,05,8,0,03,0x4,0,0x5,64,0,0, -8,0,04,0x1,0,0,16,96,248,224,01,0,0x4,036,0,0,0x1,0140,32,12,0342,0x1 -,0x3c,0,01,0360,0,0,0x6,192,0,2,014,0,0x14,054,0,1,176,0,0,0x16,192, -0x2,0,0x1,013,0140,0,0,014,0,0x1,0360,0,0,0x1e,0,1,24,0,1,0202,0x1,12 -,0,0,64,248,36,128,0,4,0x2,0x2,2,0,0,02,0214,32,128,4,0101,0,0,16,64, -02,64,0,02,0214,02,0,0x2,4,0,5,16,0x2,0,5,0x8,132,024,0,1,0120,0,0, -012,64,0x1,0,01,5,32,0,0,04,0,01,16,64,0202,16,0,0,0x8,0,2,137,0x4,0, -0,0152,254,014,0,0x7,1,96,021,054,0x2,0,5,0130,8,19,0,0x1,0114,02,0, -02,02,0,5,16,01,0,05,010,128,0x18,64,0,0,96,0,0,149,144,1,4,0,0,012, -128,0105,48,16,0,05,0140,0,0x1,132,0120,176,32,0x38,248,192,01,0,4,28 -,192,02,0x78,0,0,017,192,0x1,0x38,0,1,224,0,0,0x1e,192,0x3,0x1,0,0, -017,0,0x3,7,0,5,144,03,0,0x5,104,0,0,0x24,0,0x1,144,0,0,16,64,02,0,01 -,011,192,1,0x3c,0,0x1,224,0,0,034,0,1,0170,32,3,224,0x1,0x3c,0,0,128, -0372,010,0,7,0x1,96,16,12,8,0,0x5,24,0,0,0x3,0,01,014,0,0x2,128,0x5,0 -,0x5,208,2,0,05,010,0,0,32,010,0,0,128,32,16,0,0,0202,0,0x1,0x8,128, -0x1,48,0,6,96,0,0,014,128,0,0,48,0,0,145,0372,128,0x1,0,0x4,24,0,0,2, -0140,4,0x2c,128,0x1,48,0,01,192,0,0,0x18,0,0,03,0,01,12,0x4,0,2,04,0, -05,010,02,0,5,0x4,16,17,0x1,0,0,64,0x4,16,021,021,0,1,0x8,128,1,48,0, -1,208,0,0,0x1a,0,01,0140,0,0,0x4,144,17,061,0,0,0130,248,0,0x1,16,0, -032,0x4,0,0x6,0x2,0,0x23,0274,0376,32,0,0x1,128,0,0,16,0,0,0x2,64,0,0 -,0x8,0,0,0x1,32,0,0,0x4,128,0,0,16,0,01,64,0,0,0x8,0,0,1,32,0,0,4,0, -07,0x2,0,0x6,041,0,0,0x4,128,0,0,16,0,0,02,64,0,0,0x8,0,0,01,32,0,0, -04,0,0x4,64,0,0,010,0,0,01,32,0,0,04,0,0,208,252,0,0112,152,0377,0x28 -,0,0,0x4,128,0,0,16,0,0,0x2,64,0,0,8,0,0,0x1,32,0,0,04,128,0,0,16,0,0 -,0202,0102,0,0,8,0,0,0x1,32,0,0,04,0,017,32,0,0,04,128,0,0,16,0,0,02, -64,0,0,010,0,0,0x1,32,0,0,4,128,0240,16,0x14,0202,0102,0,0,0x8,0,0,1, -32,0,0,4,0,0,073,0373,0,0,0x4,128,0,0,2,0,0,2,64,0,0,0x8,32,0,0,0x4,0 -,0,04,128,0,0,16,0,0,02,72,0,0,1,0,0,1,04,0,0,132,128,0,021,16,0,0,2, -64,0,0,64,0,0,01,32,0,0,04,0,0,32,16,0,0,18,0102,02,72,0,0,8,0x21,0,0 -,4,128,0,0,16,0,0,0161,251,0,0,128,0,0,16,0,01,64,0,0,0x8,0,0,1,0,0x2 -,128,0,0,16,0,0,02,64,0,0,0x8,0,1,32,0,03,16,0,14,32,0,0x6,010,0,03, -64,0,04,64,0,0,010,0,07,26,0372,0x4,0,0111,156,0377,0,0,0x28,0,0,0241 -,0,01,0x14,128,02,0120,0x8,0,0,0x1,0,0,0x28,0,0,0x5,0240,0,0,0x14,0,0 -,64,0,0x1,012,0x1,0,0,0x28,0,0,0x5,0,14,32,0,0,04,128,0,0,16,0,0,128, -0102,0,0,8,0,0,01,32,0,0,0x4,0,5,0120,010,0,0,01,32,0,0,4,0,0,216, -0372,0,31,32,0,06,16,0,0x4,64,0,023,0x2,0,0x6,0310,0372,0,0x14,128,0, -0,1,0,0,0x4,0,0,01,0,0x21,04,0,7,0x8,0,2,216,0372,0,6,0x1,0,011,8,0, -0x3,0x1,0,03,2,64,0,0x15,16,0,011,04,0,011,04,144,253,0,0,02,0,12,64, -0,29,32,0,0x1,136,0,015,64,0,2,32,0,0,1,0,3,0x38,248,0,24,8,128,0,34, -0x2,0,0x3,0x1,0,01,32,0,0,64,0,01,216,252,0,0,01,32,0,1,128,0,0,16,0, -0,0x2,0,3,01,32,0,0,04,128,0,0,16,0,1,64,0,03,32,0,01,010,0,6,0x4,0, -0x6,2,0,3,16,0,1,64,0,6,128,0,0,16,0,07,32,0xc8,0372,0,017,16,0,0x7,2 -,0x4,0,0x12,64,0,0x2,64,32,0x8,0,0,128,16,0,0,04,4,0,01,32,0,0x2,4,04 -,0,0x7,208,0373,0,0x5,128,4,0,0x1,01,0,0x8,0x8,0,031,16,010,0,4,0x1, -64,0,01,042,0,0x3,32,64,0,1,01,0,04,010,0,0,8,251,0,1,16,0x8,0,0,64, -128,2,0,1,2,0,0x4,16,2,128,0x2,2,0,3,2,134,0,0x12,128,4,32,02,32,64, -0214,0102,0,0,071,0,0,02,0x2c,0,01,16,0x2,0120,128,0x4,0114,0,5,0x4, -128,0x78,0374,32,0,04,0102,01,02,0,0,05,0,0,0x4,01,0,0,4,38,0,0,16,2, -64,0,0,02,010,0,0,64,32,04,4,0132,0,16,32,0x8,0,0,64,32,0x12,054,0103 -,0,0x1,0x8,02,03,32,0,0x2,2,168,0,0,010,0,03,32,32,04,184,0377,0,013, -02,0,15,16,0,021,8,0,0,64,32,0,0,132,0,03,02,0,5,0x8,0,7,128,0120, -0372,0,0x7,0x8,0,03,2,0,01,16,0,0x4,1,0,0x17,16,0,3,0x8,0,0,129,0,1, -0x4,128,0,0,4,0,012,128,010,16,16,0374,0,12,2,0,18,01,0,5,128,0,0x21, -128,252,0,0x1c,128,0,0x6,64,0,6,32,0,28,112,0373,0,024,128,0,012,0x2, -0,021,2,0,013,64,0,01,16,0,0x5,0x38,0372,16,0,013,64,0,03,32,0,26,0x1 -,0,4,04,16,0,0,128,0,5,8,0,0,1,32,0,010,0x24,248,0,011,0x1,0,13,4,0, -042,16,0,12,136,0373,0,03,16,0,0105,136,254,8,0,0,64,0,0,8,0,0x4,128, -0,0,01,0,06,0x28,0,0,0x4,0,056,18,0,0x1,64,0,0,0362,0371,0,12,011,0, -013,010,0,04,01,0,5,128,0,011,0x4,0,4,64,0,03,32,0,0,4,128,0,0,16,0, -0x1,64,0,2,01,0,0,0x78,253,0,0x23,16,0,6,8,0,035,010,0377,0,34,128,0, -06,64,0,036,0120,0373,32,0,03,16,0,0,0x2,0,7,128,0,0,16,0,0x4,128,0,0 -,32,0,02,010,0,03,128,0,0x1,04,0,015,32,0,1,128,0,021,104,0374,0,59,8 -,0,015,144,255,0,0x1f,2,0x4,0,5,01,2,0,4,01,0,0x1a,0310,0372,0,0112, -152,0377,0,012,1,32,0,010,010,0,01,32,0,45,04,0,1,64,0371,0,012,32, -0x8,0,0x8,0x2,0,1,8,0,0x2b,0x8,0,0x3,144,255,0,0,02,0,013,0x2,0,03,1, -0,01,0x2,128,0,2,0x2,0,0x17,32,0,012,0x1,0,0x1,4,0,6,48,251,0,1,0x4,0 -,0x1d,02,0,041,4,0,5,184,0375,0,0x5,128,0,4,16,0,01,1,32,0,0,04,0,01, -16,0,01,64,0,010,04,0,6,012,0,011,16,0,0x8,0x2,0,3,0x4,0,5,96,0375,0, -0,128,0,06,1,0,5,16,0,1,64,0,1,128,0,0x5,16,0,12,128,0,010,010,0,013, -010,0,7,0172,248,0,026,0x8,0,3,04,0,06,1,0,05,192,0,0x15,02,0,0x7, -0140,252,0,0x24,1,0,0x15,128,0,05,02,0,3,32,0,0x1,0x38,0374,0,0x1,128 -,0,0x6,16,64,2,0,013,02,0,19,32,0,01,128,0,024,64,0,02,010,252,0,011, -192,0,59,0x1,0,2,192,251,0,6,0x2,0,4,64,0,011,64,0,19,32,0,0x2,02,32, -32,0,1,129,0,0,32,4,0,04,0x2,0,0x1,0x4,0,07,0x28,248,0,01,8,0,06,32,0 -,0x8,010,0,0x7,16,0,016,128,0,1,8,0,2,8,4,0,3,0202,0,02,02,0,4,32,16, -4,0,0,128,0,0,128,0214,252,0,0,64,024,0,03,04,0,0x1,0x8,0,0,4,64,0x3, -16,0,0x1,0x1,0,0,0x2,0,0,0121,0,0,32,04,0,02,32,0,0x2,4,0x8,32,0,0x4, -02,0,0,16,32,96,0,01,32,01,32,64,2,144,129,01,48,02,168,0,01,128,0,0, -0x2,0,0,010,8,0,0,0x8,64,01,02,0,0,01,0,0,0120,0371,0,1,144,0,0,02,0, -0,0140,3,4,02,0,01,0x28,0,0x1,132,0,0,32,16,32,64,0,0,24,0,1,136,0x14 -,0,021,128,132,18,010,16,129,48,0360,0107,0275,0105,0,0,0x4,1,0x3,16, -010,64,0x1a,0,0,0202,0,2,8,041,128,0,0,32,0x8,0120,0374,0,1,010,128,0 -,01,64,0,0,8,0,011,64,0,0x18,64,0,0,16,0x8,0,0,1,64,0,0,0x4,129,0,0x1 -,4,0,1,8,010,0,0x8,128,0,1,0x8,24,0377,0,8,0x1,0,1,04,0,013,0x4,0, -0x17,64,32,0x8,16,0,0,64,0,01,0202,0,011,8,0,2,16,0,0,48,0374,0,031, -01,0,7,64,0,0x6,32,0,036,168,249,0,012,1,0,0x3b,128,0,0x1,0x8,0377,0, -36,0x1,0,0x4,0x8,0,03,32,0,1,128,0,02,0x2,0,1,010,0,017,56,0374,0,043 -,01,0,6,0x1,0,7,02,0,0,32,0,011,128,04,0,03,0x2,64,0,0,120,0376,0,21, -64,0,02,010,0,0x2e,128,182,0375,0,012,010,0,62,24,255,0,0112,152,255, -0,013,02,0,0x3c,128,0164,249,0,12,0x1,0,012,021,0,017,4,0,2,4,0,0x5, -04,0,0x4,4,0x8,0,014,64,192,0372,0,0x1,64,0,0x2,64,32,0,0x1,0x1,0,02, -128,0,0,64,0x8,0,2,8,0,0x2d,128,0,0x5,48,0374,0,014,16,0,16,32,0,0x6, -16,0,0x4,64,0,034,248,0374,32,0,1,16,0,0,16,0,0,0x2,64,0,0x3,32,0,0,4 -,128,0,0,16,0,0,02,0,0,04,8,0,01,042,0,0,4,0,026,0x2,0,1,8,0,1,32,0,1 -,128,0,0,16,0,0,02,64,0,0x5,32,0,0,0240,0376,0,03,64,0x2,0,0,64,0x8,0 -,5,48,6,0,0x7,129,0202,0x1,0,25,32,051,0,0x1,32,0,1,0212,0,2,02,0,010 -,176,0372,0,0x1a,128,0,26,64,0,18,0x58,0373,0,02,128,01,0,01,06,0,6, -074,0,8,04,0342,1,0,0x18,192,0,0,0130,0,1,0140,1,014,128,0x5,0,1,026, -0,8,136,253,0,2,128,0,0x2,0x2,0,6,04,0x12,0,07,136,32,0,0,0x1,0,23,64 -,0,0,0x28,0,0x1,0240,0,0,4,128,02,0,1,012,0,8,128,0371,0,0x3,0x6,0,01 -,0x18,0x8,0,017,32,0,0x1b,35,52,1,0,0,192,04,48,0x6,19,0,0x1,0114,0, -010,0x58,0371,0,0x2,128,7,04,0,0,036,0,6,56,0,010,017,0xc8,01,0,24, -192,0x3,72,64,0,0,32,1,0x3d,128,4,4,0,0,0x12,16,0,0x7,120,248,0,0x3, -0x6,0,01,0x18,0,16,4,0,27,3,64,0,02,01,48,0,0,4,0,0x1,16,0,8,16,0372, -0,0x3,6,0,1,24,0,0x6,48,0,8,014,144,01,0,0x19,0x3,32,18,0,0,128,72,48 -,0,0,34,1,0,0,136,4,0,0x7,208,255,0,1,176,192,02,010,0,0,64,8,0,016, -36,0,013,48,0,06,24,0,0,064,0,5,32,011,0,0,0205,041,0,1,128,0,0x2,0x2 -,0,8,232,249,0,36,014,0,0x6,06,0,0,48,0,0x8,010,0,16,120,0376,0,1,074 -,0,0,02,01,0,0,0x6,0,016,0x18,0,014,12,0,6,0x6,0,6,192,0,0,0130,0,0, -014,96,0x1,0,0,128,05,0,0x1,0x16,0,0x8,112,0371,0x8,0,0,0x4,32,16,0,1 -,02,0,14,010,0,014,012,0,6,0x5,0,6,64,0,0,0x28,0,0,72,164,0,1,128,0x2 -,0,0x1,012,0,8,218,0371,0,0x3,64,0,01,0x18,2,0,015,96,0102,0,013,012, -0,6,5,0,01,32,0,4,0x3,48,01,0x4,192,0x4,0,0x1,023,0,01,0114,0,0x8, -0120,252,0,1,0x38,128,5,2,0,0,0x1e,0,016,0x78,0,026,014,0,04,192,0x3, -0112,64,017,0x28,0x1,1,128,4,0x4,0,0,18,16,0,7,248,253,0x4,0,3,04,0,0 -,24,0,016,0140,0,035,0x3,64,0,0,0x4,0x2,1,0,1,4,0,0x1,16,0,8,0161,253 -,0,01,48,0,3,0x18,0,016,96,0,23,16,0,0x4,03,32,16,0114,128,64,0,1,2, -01,0,0,0x8,04,0,7,240,254,0,03,64,194,0,0,0202,0,04,160,021,49,06,0, -06,36,0,013,16,0,06,010,0,7,32,011,0,1,32,0,0,164,128,0,02,2,0,02,36, -0,0x4,56,0377,0,0x5,64,0,0,4,0,0x1b,16,0,6,8,0,015,16,8,0,014,24,0376 -,0,2,128,0x1,0360,0,0,8,0,0x4,128,0101,074,0,06,24,0,12,0x2,0,6,01,0, -6,192,0,0,0x58,0,01,0140,1,034,128,5,0,1,0x16,0,0x1,24,0,0x5,0x28,248 -,0x4,0,0x1,128,0,0,16,72,144,8,0,3,128,011,0x4,32,0,5,8,0,014,16,0,6, -0x8,0,6,64,0,0,0x28,0,1,0240,0,0,36,128,0x2,0,0x1,012,0,01,010,0,5,34 -,254,014,0,0x2,0106,0x8,0,0,64,0,0x4,128,0,0,2,0,0x6,0140,01,0,013,02 -,0,0x6,1,0,7,0x13,49,01,0,0,192,4,32,0,0,0x13,0,0x1,0114,0,1,0140,1,0 -,4,176,252,0,2,128,07,224,0,0,0x1e,16,0,03,224,0x1,56,0,0x6,120,32,0, -013,32,0,0x6,16,0,6,192,0x3,0x48,64,0,0,32,0x1,17,128,4,0x4,0,0,18,16 -,0,0,0170,64,0,04,0140,0375,8,0,2,0x6,0,1,8,0,4,128,0101,0,0x7,0140,0 -,12,2,0,0x6,1,0,7,3,64,0,02,0x1,16,0,0,0x4,0,0x1,16,0,0x1,0140,0,5, -0x31,249,0,3,6,192,0,0,24,32,0,3,128,0x1,48,0,6,96,0,29,0x3,32,021,0, -0,128,0104,32,0,0,18,0x1,0,0,0x48,4,0,0,0140,0,0x5,56,0372,0,03,64, -0x2,0,0,64,010,0,04,144,0,6,32,0x2,36,128,0x4,0,0,04,0,7,042,0,06,145 -,1,0,6,32,011,0,01,32,0,0,36,128,0,02,0x2,64,3,104,0x12,0,2,0x34,0,0, -124,255,0,024,0x8,0,016,010,0,0x6,4,128,0,12,16,0,0x5,03,0140,0,0x3, -48,0,0,112,0375,0,0x2,128,01,0,01,06,0,4,96,0,5,0x6,192,0,0,24,0,0,3, -0,0x2,32,0,06,2,0,06,0341,0x1,0,05,192,0,0,0130,0,01,0140,01,054,128, -0x5,0,0x1,026,192,03,64,16,0,0x2,48,0,0,0x38,0372,8,0,0x1,128,0,2,0x2 -,0,0x4,32,0,5,0x2,64,0,0,8,0,0,0x1,0,02,1,0,06,0x2,0,06,0x21,0,0,0x1, -0,04,64,0,0,0x28,0,1,160,0,0,024,128,2,0,1,012,64,3,32,02,0,02,48,0,0 -,219,254,0,3,0x26,010,0,0,0130,0,04,128,011,2,0,0x3,0x18,021,0143, -0140,0,0,0214,8,0,01,041,0,06,16,0,0x6,0x8,0,07,3,0x32,01,0,0,192,04, -24,0,0,023,0,0x1,0114,0,0,0x3,0140,132,0,03,012,061,251,0,02,128,7,0, -0x1,0x1e,8,0,0x3,224,0x1,0,0x4,036,192,03,0x78,32,017,0,01,014,0,017, -192,0x1,0,5,192,03,72,64,0,0,32,01,041,128,04,04,0,0,18,144,03,24,0, -03,12,0,0,218,0373,04,0,02,06,0,1,24,0,4,128,1,0,4,0x18,0,0,03,0140,0 -,0,014,0,02,16,04,0,5,012,2,0,5,0x5,0,7,03,64,0,2,0x1,16,0,0,4,0,01, -16,0,0,0x3,64,64,0,04,0334,0373,0,0x3,6,0,1,0x18,0,4,128,1,0,4,0x18,0 -,0,03,0140,0,0,014,0,01,176,0,0,2,0,0x6,01,0,0x5,128,01,0,6,0x3,32, -024,0,0,128,0120,32,0,0,0102,01,0,0,8,05,3,0,0,0x2,0,04,32,0374,16, -144,0,01,64,02,0,0,64,8,0,0x4,144,0,7,104,16,128,04,0,0,48,146,0,0x6, -0106,0,0x6,0x3,0,6,64,32,0x8,0,0,128,36,0,1,138,0,2,0x2,64,03,0,0,36, -0,5,0375,0,0x16,64,0,05,2,0,05,0x4,1,0,5,2,0,0x7,128,0,0x13,0x8,0377, -0140,0,01,128,0x1,0,0x1,0x6,0,04,0140,0,8,96,16,03,0,1,074,128,0,06, -0x48,0,6,4,0,0x7,01,0x58,0,0,3,0140,1,014,128,0x5,0,1,026,192,131,24, -0,6,0372,054,0,1,128,0,0x2,02,0,0x4,32,0,8,64,0,0,0x1,0,01,4,32,011,0 -,5,0212,4,0,05,0x5,0,0x7,138,0x28,0,0,01,0240,0,0,0x4,128,02,0,1,012, -64,013,0x8,0,5,0102,248,132,0205,0,0x1,046,0,01,24,3,0,03,128,011,0, -07,32,0202,014,1,0,0x1a,0x8,52,01,014,208,0x4,48,64,19,0,0x1,0114,0,0 -,160,96,042,0,0x4,168,0376,224,0x1,0,0,128,07,4,0,0,036,0,4,224,129,0 -,07,120,0,0,017,0,01,56,0,23,192,3,72,64,15,32,01,0x3d,128,4,04,0,0, -18,208,3,0170,0,05,72,0375,132,01,0,1,0x6,0,1,24,0,4,128,0x1,0,0x7,96 -,64,12,0,02,128,2,0,0x5,64,1,0,016,01,64,16,014,0,0,0101,48,0,0,4,0x1 -,0,0,16,4,128,0140,0,5,217,254,128,1,0,1,6,0,01,0x18,0,04,128,1,0,0x7 -,0140,0,0,014,0,1,48,0,0,0x8,0,06,0x4,0,14,0123,32,04,12,128,16,48,0, -0,0102,0,01,0x8,0101,35,0140,0,05,0xc8,0376,0,02,128,38,1,0,0,0x1a,0, -3,014,0,0,144,176,64,0106,0,0x5,36,128,04,0,021,128,1,0,0x5,64,0,0, -010,0,0,128,0x24,0,0,04,128,0,0,16,0,0,0x2,64,0,0,010,1,0,04,0310,255 -,0,3,0x6,0,1,24,16,0,3,8,0,0x3,04,0,011,128,0,06,64,0,07,128,0,6,128, -0,015,16,0,4,152,249,0,3,0x4,0,1,16,0,3,15,0140,0,0,074,128,7,0,0x4, -24,0,0,0x3,0,3,04,0,06,02,0,5,224,0x1,0,0x6,0x1,0130,0,0,03,0140,01,0 -,0,128,05,192,0,0,026,192,0,0,32,16,0,0x4,48,0372,0x8,0,2,18,1,0,0, -0x8,04,0,02,01,0x28,0,0,04,146,32,0x8,0,0x3,0x8,0,0,1,0,0x12,32,144,0 -,06,0242,0x28,0,0,1,160,0,1,128,0x2,192,0,0,012,64,0,0,64,0,0x5,0x32, -0377,0,0x3,026,0,01,0x58,0,04,128,021,0,7,96,129,12,0,2,128,2,0,5,64, -01,0,14,010,0x34,1,0114,196,0x4,48,0x1,0x13,0,0,136,0114,0,0,19,0,0, -132,0,4,16,248,0,2,128,0x1,04,0,0,06,16,0,2,016,224,01,0x39,0,0,0x7,0 -,0x4,120,0,0,017,0x8,0,17,192,1,0,05,192,3,72,64,017,32,0x1,61,136, -0x4,0x34,0,0,18,208,131,0x78,0,0x5,192,0377,4,0,02,0x4,0,0x1,16,0,0x4 -,128,1,0,07,0140,0,0,014,0,0x2,128,01,0,05,192,0,017,01,64,16,12,0,0, -0101,0,0x1,4,0x1,0,0,16,4,3,32,64,0,0x4,193,0371,0,03,128,0,2,32,0,2, -014,128,0x1,48,0,0,0x6,0,0x4,0140,0,0,014,0,0x3,1,0,5,128,0,0x6,128,1 -,0,06,0123,32,1,014,128,04,128,8,18,0,0,128,72,64,03,0140,02,0,0x4,16 -,252,0,2,128,32,0,01,012,04,0,03,32,48,0,01,0106,192,0x48,0,01,32,012 -,021,128,0x4,0,0x2,02,0,0x6,1,0,014,2,64,147,0x8,0,0,0101,042,0,0,0x4 -,128,0,2,0x2,64,0,0x1,36,0,0x2,176,0,0,104,248,0,04,1,0,04,32,0,0x5,4 -,0,011,128,0x2,0,5,64,1,0,016,02,0,021,48,16,32,0377,0,3,02,0,01,010, -04,0,0,24,0,01,128,0,01,128,7,0360,0,0x1,192,0,0,32,0,0,03,0,27,03, -0132,0,0,0x4,0142,01,0,0,128,5,0,01,0x16,0,0,0x3,24,0,0x3,074,0,0, -0120,0375,010,0,2,36,0x1,0,0,64,0,0x1,010,0,0x2,5,0x1,128,64,18,72,0, -0,64,0,0,64,021,0x1,0,012,0x2,0,6,01,0,07,34,0x28,0,0,0x28,0240,0,0x1 -,128,2,0,01,012,0,0,0x3,010,0,0x3,064,0,0,0x3a,0375,0,0x3,16,0,02,011 -,0,0,96,014,0,0x1,16,0x2,0,05,3,4,1,0214,0,012,010,0,0x6,4,0,6,021, -011,48,01,128,208,4,128,8,19,0,1,0114,0,0x1,0142,0,04,012,72,0374,0, -02,128,07,0x4,0,0,0x16,0,01,0170,0,1,224,1,0,1,7,224,0,1,192,03,0x78, -64,017,0x4,0,24,6,192,03,0112,64,15,32,01,015,128,0x4,4,0,0,18,208,0, -0,0x78,64,0,02,014,0,0,64,248,0x4,0,02,2,0,02,16,0,0,0140,0,01,128,64 -,0,06,0x3,32,0,0,12,0,25,24,010,3,0102,16,0x4,0x8,0101,48,32,04,1,0,0 -,16,04,0,0,96,0,5,153,251,0,03,134,0,04,0140,0,0x1,128,17,0,1,6,192,0 -,2,03,0140,010,12,0,0x19,0x18,0,0,03,32,0,0,0114,128,0,0,48,0,0,02,0, -01,010,0,0x1,0141,0,0x5,192,253,0,2,128,0x16,02,0,0,26,0,0,0x3,0,02, -32,0,0,1,0,0,0106,4,0,0x1,64,0,0,010,4,0x21,0202,17,0x1,0,021,4,0202, -64,2,72,0,0,64,011,0x8,0,0,141,042,0,0,4,128,0,2,0122,64,0,01,36,128, -164,16,5,18,128,0371,0,03,04,0,1,24,0x4,0,0,2,0,12,16,0,013,010,0,06, -04,0,1,0x8,0,4,02,1,0,0,0x8,0,6,8,16,0,0x4,01,0,0x1,0x38,0376,0,0x3, -0x6,1,0,0,16,196,03,0,0x2,128,0,0x1,128,07,0,2,192,0,0,32,0,0,0x4,224 -,1,0,18,48,32,02,064,0,0x2,3,0130,0,0,12,104,1,12,128,05,0,01,026,0, -01,24,0,0,3,128,0,0,16,32,24,0374,0x8,0,0x2,0x4,0,01,8,0101,32,01,0, -0x2,5,0x2,128,64,0x2,0,0x1,64,0,0,64,024,136,042,0,0,1,0,0,04,0,5,16, -02,0,05,010,0,0,48,0,01,16,0,02,18,0x29,0,0,0x28,160,0,0,04,128,2,0,1 -,012,0,0x1,0x8,0,0,0x1,0,0,1,0,01,0132,0373,0,0x3,18,04,0,0,0130,32,0 -,04,0104,0,6,0243,0,0,132,32,0,03,02,0,5,16,01,0,05,010,0,0x1,0x21, -026,196,0,02,011,49,0x1,0104,208,4,48,011,023,0,1,024,0,0,0240,0140,2 -,0214,128,0,0,176,64,136,0377,0,02,128,07,0,01,06,128,0x3,0,02,224,01 -,0,01,07,0,2,192,0x3,0170,0,0,017,0xc8,0x1,0,0x1,0x7,0,5,144,3,0,5, -0x8,0,0,054,128,7,240,64,0,0,192,03,72,64,017,32,0x1,0x3d,128,0x4,0x4 -,0,0,18,192,0,0,120,32,017,104,0x1,074,0,0,24,251,4,0,0x2,6,4,0,0,16, -16,0,0x3,128,0,7,0x3,32,64,4,0,2,128,05,0,0x5,208,02,0,0x5,010,0,0,48 -,16,6,196,0,2,129,64,16,014,0x8,0101,48,0,0,4,0x1,0,0,16,0,0,131,0140 -,0,0,014,128,0,0,48,32,0371,0374,0,03,6,0,01,128,0,0,0x3,0,2,128,0121 -,0,0x1,0x6,0,02,64,0x3,0140,02,014,144,0x1,0,1,04,0,05,010,0x2,0,05, -04,0,0,16,0,0,042,192,0,2,3,32,2,12,128,010,52,0,0,34,0,1,16,0,0,043, -0140,0,0,014,0,0,1,16,0x1,176,248,0,024,128,0,07,0x4,0,0x6,0x2,0,0x14 -,010,0,015,064,0377,32,0,0,04,128,0,0,16,0,0,0x2,64,0,0,010,0,0,0x1, -32,0,0,04,128,0,0,16,0,0,02,0,1,0x8,0,0,01,32,0,0,0x4,0,7,16,0,06, -0x28,0,0,4,128,0,0,16,0,0,0x2,64,0,0,010,0,0,0x1,32,0,0x1,128,0,0,16, -0,0,2,128,0,0,0x8,0,0,01,32,0,0,4,0,0,64,0372,0,0112,152,0377,0x28,0, -0,0x4,128,0,0,16,0,0,2,64,0,0,0x8,0,0,1,32,0,0,04,128,0,0,16,0,0,0x2, -64,0,0,8,0,0,01,32,0,0,4,0,15,32,0,0,4,128,0,0,16,0,0,2,64,0,0,0x8,0, -0,01,32,0,0,0x4,128,0,0,16,0,0,02,64,0,0,8,0,0,01,32,0,0,0x4,0,0,0243 -,0374,0,01,128,16,0,1,0102,0,01,010,0x1,0,0,32,0x4,0,0,128,16,16,0x2, -0102,0,06,132,128,0,16,132,0,13,042,0,0x3,128,144,0,04,010,0,0,0131, -252,64,0,0x2,0x1,0,01,0x4,0,0x1,16,0,0x1,64,0,0x5,0x4,128,0,0,16,0,0, -02,0,02,16,0,16,0x4,128,0,0,32,0,0,0x2,128,0,0,16,0,0,02,64,0,0,8,0,0 -,01,16,0,0,0x4,0,01,16,0,0,0x2,32,0,0x2,032,0371,4,0,0x49,0234,0377, -32,0,0x1,133,0,1,0x14,02,0,0,0120,0x8,0,0,64,0x21,0,0x1,0x5,0240,0,0, -0x14,02,64,0,0,0x8,0,0,01,0,0,0x28,0,0,0x5,0,017,0x28,04,128,0,0,16,0 -,0,02,64,0,0,0x8,0,0,01,32,0,0x1,128,0,0,16,0,0,2,64,0,0,0x8,0,0,1,32 -,0,0,04,0,0,168,0375,0,0x4,128,0,02,02,0,0x4,32,0,0,0x4,128,0,4,128,0 -,02,128,0,16,0x1,0,27,0130,252,0,0x23,32,0,0x6,16,0,0x1d,184,0376,0, -02,64,128,0,012,64,0,062,64,0,5,144,0377,02,0,017,16,0,010,04,0,0x14, -01,0,1,0x4,0,012,02,0,03,32,0,01,04,0x28,0,0,48,249,0,1,16,0,0x1,64,0 -,0x1,32,01,0,0x1,4,0,1,0x12,0,0,02,64,0,6,128,0,17,128,0,010,04,0, -0x12,144,0373,0,23,72,0,02,32,0,0x4,32,0,6,16,0,14,010,0,011,64,0,4, -0x8,255,0,1,4,0,0x1,16,0,03,1,0,04,16,0,0x7,02,0,034,0x8,0,0,04,0x2,0 -,0,4,0,03,0x4,0,011,254,0,6,0x8,0,0x27,128,0,5,32,16,0,0,129,64,0,0x1 -,0x2,0x21,32,0,0,0x4,128,0,01,02,0,1,010,0,0,72,252,0,1,8,0,1,0140, -0x14,2,0,1,1,0,0x3,16,025,0,04,012,0,1,2,02,0x28,0,0x13,128,0,05,0x18 -,64,0x2,0x2c,05,0151,142,0,0,024,128,0x4,16,0,0,2,0,0,0x1,0,01,4,0,0, -216,0375,0,0,16,01,0,2,04,0,04,010,0x1,0,0x1,0122,0,0x3,64,010,0,0x4, -16,0x8,0,016,32,0,01,0x28,0,01,48,0,3,014,0140,128,0104,36,0x6,04,0,0 -,4,16,0,0,112,64,0,0,04,0,0,043,32,014,168,248,0,27,16,16,0,17,8,0, -0x1,64,0,05,128,64,0,011,02,0,2,32,217,0372,0x2,0,012,02,4,0,36,128,0 -,3,16,0,0x2,16,0x8,02,0,0x1,0x8,0,0,128,32,0,01,128,128,010,16,0271, -248,0,3,0x8,0,0x1b,64,010,0,5,32,04,0,03,128,0,0x12,0x8,0,0x6,152,249 -,0,0x16,64,0,8,8,0,6,014,0,32,0120,0373,0,016,1,0,1,0x2,0,067,168, -0374,16,0,16,32,0,010,010,0,16,2,0,0x8,16,0,0,16,64,0,02,01,0,0x1,04, -0,0x7,0x24,248,2,0,0x3,05,0,0103,128,0140,253,0x4,0,2,16,0,01,64,0,05 -,4,0,010,0x1,0,034,010,0,01,32,0,16,0341,0376,0,27,16,0,02,128,0,06, -64,0,0x21,64,0372,0,04,6,0,16,128,0,062,112,0377,0,0112,152,0377,0, -0103,32,0,05,152,0375,128,0,45,64,0,011,0x1,0,07,4,0,06,24,0376,0,0x4 -,0x8,0,0,2,0,25,0x2,0,6,01,0,31,8,254,0,6,6,0,27,128,0,6,64,0,035,24, -0375,0,0112,137,0376,0,0112,152,0377,0,0x7,0x8,0,023,0x4,0,38,16,0,04 -,72,0377,0,0112,152,255,0,016,0x1,0,05,8,0,01,0x1,0,061,0377,0,02,16, -0,010,04,0,1,16,0,0,4,0,7,128,0,0,16,010,64,0,0,32,0,0,64,0,1,0x4,32, -0,0,16,0,0,32,0,01,128,0,27,0x78,0374,0,0x6,32,0,16,32,04,0,3,16,0, -0x2,16,0,02,8,0,02,0x8,0,011,64,0,18,128,128,0377,0,016,0x4,0,0x2f,64 -,0,010,64,152,251,0,4,0x1,0,1,04,0,04,64,0,010,16,0,0,0x2,0,19,136,0, -0,16,0,0,0x1,64,0,0x1,0x2,0,03,128,0,013,128,0,0,56,0375,0,0x6,72,0, -05,04,0,8,01,0,31,32,0,012,0x1,0,4,48,0373,64,0,2,0x1,0,0x7,64,0,010, -16,0,0,0x2,0,0x17,32,0,01,192,0,0x2,2,0x4,0,8,16,0,0,0x2,0,03,48,0372 -,0,0x1,8,0,011,64,0,6,64,0,0,16,0,0x12,64,0,010,128,0,0,32,16,04,0,0, -64,16,0,0,02,0x2,32,2,0,0,128,0,2,8,0,1,16,0x28,252,0,013,0x1,0,054,2 -,0,0,0x8,0,3,8,0104,0,3,0x2,128,16,0,0,176,249,0,1,0x8,0,3,0120,0,01, -64,01,0x1,64,0,02,0x14,0,02,128,0,0,16,012,0,3,0x5,0,014,64,0,1,0x3,0 -,0,010,0,0x3,128,0,0,16,32,02,136,128,014,0,0,0x1,0x2,64,06,0120,0120 -,1,0,1,014,0,0,5,16,128,0374,0,0x1,0120,128,0,01,32,0,0,0104,0,0x3, -011,0,01,0240,18,04,136,042,0,0x1,192,0,01,64,0,05,24,6,128,0,0x4,014 -,02,0,0,0x8,0,0,3,0,0,0x1,4,192,0,01,021,0141,0,0x1,0140,32,0x26,128, -012,132,128,21,16,0102,0x2,0,0,8,0x48,128,1,32,8,112,0374,0,0x1,16,0, -2,64,0,0,010,0,0x7,1,0,016,8,0x8,0,5,04,4,0,06,32,0,0x2,0x1,0,05,8,0, -8,64,0,01,16,0120,0374,0,014,04,0,8,32,0,010,16,02,128,0,04,8,0,1,8, -128,0,2,2,64,0,02,128,0,03,64,0,0x1,2,0104,32,010,0x4,1,0,0,010,04, -128,0,0,16,0,0,0120,0377,0,026,2,0,06,32,0,06,16,0,010,16,0,012,32,0, -012,128,0,0,176,0376,0,19,64,0,8,8,01,0,0,16,0,0x3,132,0,0x8,4,0,0x19 -,0x8,0376,0,48,128,0,3,1,0,0x1,01,010,0,017,0x18,0377,0,0x6,0x4,0,45, -0x7,0,0x1,16,0,16,248,252,0,13,129,0,16,64,0,6,32,0,32,128,168,0371,0 -,0112,152,255,0,03,0x2,0,023,16,0,0x3,4,0,6,2,0,043,232,248,0,011,128 -,0,0x3,2,0,3,32,0,013,04,0,06,2,0,32,208,0373,0,2,128,0,0x8,32,0,8,8, -0,0x1d,0x8,0,15,4,0,0x2,0360,0375,0,5,01,0,0,16,0,0,0x1,0,01,4,0,013, -0x8,0x2,0,25,128,01,0,0,4,0,16,232,0375,0,011,8,0,011,64,0,014,128,0, -6,64,0,15,4,0,015,216,255,0,1,0x4,0,1,16,0,0,16,64,0,2,1,0,0x1,04,128 -,0,0,16,0,04,128,0,0,32,0,0,04,0,0,2,0,0,128,0,04,0x1,0,0,64,0,3,32,0 -,0x1c,216,0376,56,04,0,03,128,0,0x31,4,128,0,013,32,4,0,0x1,0116,0377 -,0,0,01,0,2,128,0,0,16,0,062,0x1,0,013,0x1,0,0x2,254,0,0112,152,0377, -0,0112,152,0377,0,0,0x16,192,0x2,0264,0,0,013,0140,1,0x2a,64,5,168,0, -0,45,0240,2,0124,128,012,0140,01,0x2c,128,5,176,0,0,026,64,2,0,017,21 -,192,2,0130,0,0,013,224,1,0x2c,128,05,176,0,0,026,0240,0x2,0130,128, -012,224,2,42,64,013,168,0,0,0x16,0240,2,152,0377,128,014,144,01,134, -0105,06,0xc8,0,0,023,0140,02,0114,128,0141,48,1,0x26,192,0x4,0xc8,0,0 -,25,32,03,0144,128,12,128,1,0,016,128,011,144,1,062,64,06,0310,0x4, -0x19,32,03,0144,128,014,48,1,0x32,224,04,0x48,0116,0x13,104,0x58,0115 -,128,12,56,01,136,0377,0377,0377,};static const unsigned char FZD5Q3[ -]={183,0115,0377,0377,0142,0377,0x36,0,0,0325,0377,0377,255,255,255, -0377,0377,0377,0377,0377,0377,0377,0377,0377,0377,255,255,255,0377, -0377,0377,0377,0377,0377,0377,0377,0377,0377,255,255,255,0377,0377, -0377,0377,0377,0377,255,255,0377,0377,255,255,255,0377,0377,0377,0377 -,0377,0377,0,0,12,148,1,48,192,4,152,0,0,0x19,32,0x3,0140,0x2,0114, -128,011,062,0,0,0x6,0,017,144,3,38,192,04,0xc8,01,03,0114,160,011,128 -,01,48,0,0,6,64,6,24,0,0,224,0,0,18,128,0x2,72,128,012,0120,1,0x2c, -128,0x5,208,0,0,26,64,0x3,0x58,0,0,011,0,017,168,0,0,5,0240,0x1,0124, -128,04,168,0,0,21,64,0x2,72,0,0,011,0240,2,0x24,128,193,0,0x1,64,0, -063,128,185,0,0x25,0x8,0,017,128,0361,0,01,0240,0,012,32,0,0,04,5,0, -19,024,0x2,0,017,0202,0x18,0,0,010,0,010,04,0,0,8,0x5,0x1,0,12,1,0, -0x5,64,4,128,0,14,96,198,0,01,52,6,16,194,128,0,4,0115,0,1,0x2,64,0,0 -,16,0104,0,16,8,0102,012,64,03,010,0,0,01,32,0,0,0x34,194,0,0,16,64, -24,011,0,0,132,184,0,014,0x2,0,24,16,0,0,3,0,0x4,48,0,06,128,0353,0,1 -,48,128,1,240,64,0,0x4,014,0140,0,0,014,0,18,128,0x1,48,0,0,026,192,0 -,0,0130,0,1,0144,01,32,128,05,128,0,0,0x1e,192,0,1,0324,0,01,32,0212, -0,0,16,010,0,0x4,0x2c,36,0,0,04,0,0x2,132,0,016,128,0,0,16,0,0,012,64 -,0,0,0x28,0,0,128,0240,0,0,16,0242,02,0,0,4,131,72,0,0x1,152,0,01,16, -0x12,0106,4,0,0x5,4,0202,011,062,0x4,0,0x1,0x8,0,15,198,192,16,12,0x1 -,043,52,0x4,32,196,16,48,011,0103,0,0,0x8,0x1,0,0,0x3,128,175,0,1,074 -,128,7,224,0,5,15,224,01,0x3c,0,0x1,176,32,0,016,128,0x7,0360,0,0, -0x12,136,3,72,32,03,32,129,014,128,4,062,0,0,28,192,03,0202,0xc8,0,1, -16,0,0,6,0,0x6,12,0202,0x1,48,0,0x2,128,0,017,6,192,0,0,16,0,0,03, -0102,0,1,8,0x1,32,010,04,0,0x3,03,128,0252,0,1,48,0x5,0x6,192,0,0x5, -0x2c,128,0x1,48,0,0x2,0x2,0,017,06,192,0,0,136,04,0x23,32,18,054,128, -72,0,0x1,34,0x1,0x28,24,0,0,0x3,128,0351,0,01,06,128,0x26,17,0,0,02, -64,010,010,0,03,02,64,16,16,0,7,144,0,6,72,0,0,0x8,0102,2,64,0,0,0x8, -0,0,0101,36,0,0,0x24,0202,0,1,132,0x18,0x49,32,04,129,0,3,6,0,0x4,02, -0,06,01,0,7,48,0,0x6,24,0,0x5,01,0,03,16,010,0,0x6,0262,0140,0,0,014, -0,0,4,0x1,0,1,16,1,0140,0,0x1,0140,0,0,014,128,0x1,0,8,48,0,06,152,1, -48,0,0,026,192,03,0x58,0,0x1,96,0x1,28,128,5,48,0,0,0x1e,16,1,128,248 -,0x28,0,0,4,0,0,18,0,0x1,24,0,0,042,01,32,0,0,32,0,0,04,128,0,1,16,0, -6,0x28,0,6,148,0,0,16,0,0,012,64,0x1,054,0,0x1,164,0,0,36,128,0x2,16, -0,0,02,0,0,34,042,0316,128,011,062,011,06,0,0,02,64,32,136,0,2,128,17 -,48,0102,38,0,0,02,01,0,5,0x28,0,0x6,024,06,192,0,0,015,0x1,042,0x32, -4,128,0310,16,32,0,0,0103,192,128,0,0x2,128,0246,224,1,074,128,1,0x31 -,64,6,192,3,24,32,0,0,224,1,075,128,7,0362,0,017,128,0x7,0362,0,0, -0x12,136,3,0x48,32,03,32,129,0x14,128,0x4,242,0,0,28,192,131,128,0364 -,132,0x1,48,0,0,0x4,193,128,0,1,129,0,2,128,0x1,48,0,0,06,0,021,6,192 -,0,0,16,0,0,02,64,0,0,8,0,0,1,16,0,0,4,192,0,02,129,144,164,128,01,48 -,0,1,192,0x2,0,0,010,043,0,0,129,0,0,128,0x1,48,0,0,6,0,0,04,01,0,016 -,0x6,192,0,0,8,04,147,32,16,64,144,64,32,0,0,02,0321,0,0,0x18,0,0,043 -,128,216,16,0,0,02,2,16,0322,0,0x1,32,0,0,0154,0x1,0,0,48,128,064, -0202,0,021,128,06,0,0,0102,2,64,3,010,0,0,01,32,0,0,04,128,0,0x2,24,0 -,0x1,0104,0233,0,2,0x8,0,0,192,0,04,64,0,0x2,48,16,0,18,0x6,0,017,16, -0,0,128,149,0140,0,0,014,128,01,240,0,0,0x6,192,0,02,03,128,0,0,32, -128,0x1,0,16,128,0x7,48,0,0,0x16,0,0,0x3,0132,0,0x1,0144,01,0x2c,128, -05,0,1,036,192,0,0,128,147,054,0,0,4,128,0,0,208,0,0,0x2,64,0,0x1,042 -,1,0,0,021,021,0241,0,021,136,06,16,0,0,012,0,0,013,0x28,0,0,128,160, -0,0,024,128,2,0,01,0102,0x48,0,0,48,246,132,5,061,041,0x16,196,0,0, -152,16,013,041,041,0214,0x4,0,0,48,012,0106,01,0,017,16,16,192,02,014 -,01,0,0,062,0x4,0,0,208,16,24,0,0,0103,0,03,35,144,145,232,0x1,074, -128,07,0360,0,0,036,192,3,0170,0,0,15,224,0101,12,128,07,0,16,132,0x1 -,0361,128,18,0xc8,03,72,32,15,32,129,0x24,128,4,2,0,0,0x1c,192,3,129, -0314,144,01,48,0,0,0x6,192,0,0,24,0,0,3,32,32,014,128,0,0,32,0,0,6,0, -16,32,0,0,192,0,0,16,0,1,0102,0,02,0x1,32,0,0,0x4,0,0x3,0x3,16,129, -128,01,48,0,0,0x6,208,0,0,24,0,0,3,64,02,014,128,0101,0,0,012,0x6,0, -16,152,0,0,192,0,0,0x48,4,0x3,32,021,0,0,132,0104,16,0,0,18,01,0,0,24 -,0,0,3,0,0,0374,32,16,064,144,32,17,0,0,0132,64,0x23,0154,12,1,0,0, -132,0,0,64,16,16,0,15,128,64,0xc8,04,0x2,64,0,0,010,0,0,0x1,32,0,0, -0x24,128,0,0,192,132,24,64,0x23,04,163,0,0,128,0,02,192,0,0,24,16,0,8 -,1,128,0,016,64,0,0,192,128,0,07,16,0,04,16,03,128,0226,128,0,0x1,16, -2,0x1,128,16,0,0,03,0140,0,0x1,104,0,0,014,128,01,0,17,0x2,0360,0,0, -0x16,192,0x3,0130,0,0x1,0144,01,054,128,5,0360,0,0,036,0,0,02,128,195 -,0x8,011,129,0,0,024,0,1,136,16,3,0102,021,0,0,32,0,0,04,128,0,0x1,16 -,0,14,16,0104,212,0,0,012,64,3,0x28,0,0,128,0240,0,0,0x14,128,0x2,16, -0102,0202,8,041,042,131,0,0,0x4,16,0,01,1,0,0,0130,0,0,0241,32,0x8,32 -,144,05,48,06,134,64,0x2,0x1,0,015,04,0,0,192,0,0,014,01,043,062,0x4, -0,0,208,16,24,0,0,0103,0,03,013,128,0217,224,0101,074,0240,0x7,48,64, -06,196,03,0x78,0,0,017,224,0x1,61,128,7,48,0,017,128,0x7,0341,0,0, -0x12,136,3,0x48,32,03,32,129,0x24,128,4,0342,0,0,0x1c,192,128,0,0, -0372,132,0,0,16,0,0,2,0,0x1,16,0,0,03,32,16,0,0,128,0x1,48,0,0,0x6,0, -16,32,2,193,0,0,16,0,0,131,64,0,02,1,16,0,0,4,0,3,0202,16,178,128, -0101,0240,64,026,01,16,0,0,02,131,0140,4,0,0,0241,01,48,0,0,0x6,0,0, -04,0x1,0,015,04,0106,208,0,0,0x8,0x5,0x23,32,024,014,132,0120,32,0,0, -0102,193,0,0,24,0,0,0x8,0,0,198,48,16,6,128,0,0,192,128,0x2,041,0,0, -0154,042,01,0,0,132,0,0,192,32,0322,04,0,016,64,0,0,0x18,0,0,02,64,0, -0,014,0,0,0101,0x24,0,1,192,0,0,208,0,0,0x18,011,0,0,132,198,0,17,64, -32,0,0x7,012,0,0x14,192,0,3,128,191,128,1,014,0,01,0360,64,24,192,0,0 -,0140,0,1,104,0,0,12,0,0,0x6,193,64,0,14,164,1,48,0,0,026,192,3,0130, -0,0,014,0140,0x1,014,128,5,192,0,0,0x1e,192,0,0x1,0317,12,32,04,0,0, -32,24,0,1,0120,0,0,0140,0202,0,0,32,0,0,04,0,0,32,192,0x8,0,07,01,0, -05,0240,0,0,16,0,0,012,64,1,054,0,0,12,164,0,0,4,128,2,192,64,0102,72 -,0,0,16,0310,0x4,0120,48,0102,026,0x8,0,0,64,04,0x3,32,021,32,144,01, -0261,64,0,0,128,0x4,0,0x7,0x8,0,05,4,0x26,0xc8,042,12,0x1,042,062,0x4 -,0,0,208,16,48,16,0103,0,0,0x8,0,1,0103,176,143,104,0,0,56,128,01,224 -,0,0,06,192,0x3,0172,0,0,03,224,0x1,0x3c,128,0x1,0364,64,0,0x7,06,0, -05,128,7,0360,0,0,18,136,0x3,0x48,32,07,32,129,074,128,4,0x32,32,0x1c -,192,0x3,0,0,0373,16,0,0,48,0,05,03,0140,64,0,0,128,1,48,0,01,0x2,128 -,0,017,06,192,0,0,16,04,0202,64,16,014,0,0,0101,48,0,0,04,193,0,0x2, -03,32,241,128,0x28,48,0,0,128,192,0,0,0x8,5,0x3,96,0x1,014,0241,1,48, -0,0,2,224,2,0,15,0x6,192,0,0,0x8,0x1,013,32,4,014,0202,16,48,0,0,0102 -,0,0,16,0x18,0,0,0x3,0,0,145,16,132,024,128,6,16,0,0,64,0x8,0,0,4,2, -0101,0242,145,0x4,0202,0,0,208,0,0x8,05,0,0x5,128,06,16,0,0,2,64,16,8 -,0,0,01,32,0,0,04,128,0,0,192,0x8,24,01,0,0,4,0373,0,1,32,0,07,64,0, -0x3,16,0,0,192,0,0x8,4,0,014,02,0,07,128,0,0,010,0,0,128,0346,0140,0, -0,0x2c,0,3,0x6,192,0,0,24,0,0,04,0202,0x1,16,0,0,06,192,64,0,7,1,0, -0x6,06,0x34,0,0,026,192,3,0130,0,1,96,0x1,0,0,128,05,0360,0,0,036,208 -,0,0,128,0377,0x2c,0,0,024,0,0,32,010,02,03,64,0,0,8,0,0,0x8,0,0,1, -042,0x21,32,0310,010,0,15,026,16,0,0,012,64,01,054,0,0,128,168,0,0, -128,136,02,16,0102,0x2,64,0,0,32,237,132,0x1,0x18,0x6,16,0310,0x28,24 -,0,0,0x13,0144,0x1,32,128,0120,128,0,0,16,010,010,0,07,011,0,6,16,192 -,0x4,014,01,042,062,0x4,128,196,16,0,0,0x1,0103,0,0x3,0143,128,137, -232,129,32,128,01,48,0,0,036,0xc8,03,120,32,017,232,01,074,0240,1, -0360,32,0,7,1,0,5,128,01,0341,32,0x12,136,3,0x48,32,03,32,129,014,136 -,4,0342,0,0,034,192,0x3,128,0247,144,0x1,32,0x8,0,0x1,128,24,0,0,3,96 -,0,0,0x4,128,64,16,0,0x1,192,128,0,07,16,0,7,196,0,0,16,04,0202,64,16 -,014,0x8,0101,0,1,0x4,1,0,2,3,16,0375,0240,1,148,0,0,128,0,0,0x2,26,0 -,0,3,96,0,0,0x2c,0202,011,48,010,128,192,2,0,15,64,192,0,0,72,0,0,023 -,32,01,128,128,4,48,8,18,192,0,0,0x18,0,0,0x3,0,0,151,0,0,132,04,0,0, -16,18,8,0202,0,0,16,0x48,0,0,01,32,0,01,192,0,0,208,0,010,02,0,5,128, -64,24,8,3,64,0,0,010,0,0,0x2d,48,0,0x1,192,0,0,16,64,24,01,0,0,4,0215 -,0,5,64,0,0,010,0,0,02,64,0,5,192,0,8,8,0,0x17,0x8,0,0x1,153,96,0,0, -054,128,0x1,0,0,64,0,0,196,0,0,64,0,1,136,1,014,128,01,0,011,0x1,0,06 -,0x2,64,0,0,0x16,0,01,0x58,0,01,0144,0x1,014,128,5,0,01,036,192,0,0, -128,168,0x28,0,0,0x14,128,0,1,2,128,64,0,0,32,010,0,01,144,0x4,128,0, -18,0104,132,0x48,012,0,0,010,0x2c,0,0,128,0240,0,0,0x4,128,0x2,0,0x1, -131,0x48,0,0,16,144,128,0x1,25,06,0x26,128,0x2,64,16,013,0104,0x21,32 -,144,05,062,021,0106,010,36,0,14,014,64,0,01,014,01,0,0,061,0x4,04, -192,16,48,042,0103,192,0104,0,1,013,062,0375,224,01,32,128,0x7,064,32 -,0x6,192,03,56,0,0,0x3,224,01,074,0,0,0x7,48,0,017,128,0x7,241,32,18, -0310,0,0,72,32,017,0x28,129,074,128,04,0362,0,0,034,192,3,128,254,132 -,1,32,0x8,06,0,0x1,0x18,0x4,0x3,64,64,12,128,0101,48,0,0,06,0,0,64,0, -017,02,0101,0,0,16,04,3,64,16,04,4,0101,48,0,0,04,0101,0,02,03,160, -0236,0240,0x1,024,0,0,6,0,0,04,011,0101,0x3,32,4,0,0,129,021,48,0,0, -0x6,0,0,04,0,017,0x26,192,32,010,0,0,16,34,0,0,72,128,0,0,48,0,0,0x2, -0,0,0x28,24,0,0,0x3,128,147,176,17,046,06,16,18,0,0,64,72,013,104,0,0 -,32,164,137,0x4,0202,026,0321,0,17,8,0102,02,64,0140,010,0,0,015,32,0 -,01,192,0104,208,0,0,0x18,64,03,0,0,151,0,01,16,0,5,0x3,0142,0,4,16,6 -,192,0,0x18,12,0,3,0x2,0x2,0,01,16,0x3,128,0212,128,0x1,45,128,0x1,0, -01,6,0,0,02,0140,0,0,3,128,01,16,0,0,0x4,192,0,15,160,1,48,0,0,026, -192,03,0x58,0,0,014,0144,1,12,128,05,192,0,0,036,208,0x3,0,0,0264, -0214,1,024,128,0,2,2,0,0,0x21,0141,0,0,1,128,0105,32,041,0102,196,0,0 -,16,0,0x5,64,010,0,05,0240,0,0,16,0,0,012,64,1,054,0,0,0214,0240,0,0, -4,128,0x2,192,132,2,64,3,0240,193,132,0104,0x28,0,0,0x26,192,132,24,8 -,35,0,0,32,0114,132,010,0,0,011,0106,0,0,36,8,0,5,64,0x4,0,5,32,0x16, -192,0104,12,0x1,34,062,4,12,208,16,176,64,5,192,04,0,0x1,3,0,0,0264, -224,01,32,128,07,0362,0,0,036,192,0,0,0x19,0,0,017,224,0101,074,128, -0x1,49,0,0,0x1c,0,5,64,016,0,0x5,0240,07,0364,0,0,18,136,0x3,72,32, -017,32,129,074,128,4,240,32,28,128,3,128,0236,132,0x1,32,0,0,6,192,0, -0,24,0,0,2,96,16,014,128,01,16,0,0,4,0,0x1,026,0,5,64,013,0,05,32,06, -192,0,0,16,0x4,2,64,16,0,01,0101,48,0,0,04,192,0,02,0x3,16,144,128, -0121,36,0,0,6,192,0,0,032,0,0,136,0140,0,0,015,128,0x21,48,011,64,0x1 -,0,0,16,0,5,32,8,0,5,16,0x6,192,0,0,136,0,0,131,32,0x2,014,132,8,48,0 -,0,4,192,0,0,0x19,64,3,0,0,0322,128,0,5,8,0,0,01,0,0x1,0x4,128,0,05, -16,0,0x6,0x8,0,032,0264,0,2,128,0,5,8,0,0x3,04,128,0,0,16,0,7,16,0, -0x6,010,02,0,0x1,2,64,0,0,0x8,0,0,1,32,0,0,04,128,0,0,16,0,0,0x2,0,2, -0316,0,0x36,0202,217,0x24,0,0,04,145,0,0,16,132,02,64,0,0,8,0,0,1,32, -0,0,0x4,128,0,0,16,0,017,128,0,0,16,132,02,64,0,0,010,0,0,01,32,0,0,4 -,128,0,0,16,0104,02,64,0,0,16,0274,12,0,0,16,2,02,0,0,0x4,0,2,32,0,5, -16,0,0x13,0x24,0,1,8,0x1,0,7,24,128,0,0,32,48,0324,64,0,0x1,0x8,0,1, -64,04,128,0,0x2,02,64,0,0,010,0,0,0x1,021,0,16,1,32,0,0,4,0,1,16,0,0, -1,64,0,0,0x8,0,0,0x1,0,0x2,136,0,0,0202,141,010,0,04,64,0,47,32,223, -32,0,0,4,128,0,01,0x4,02,64,0,0,0x8,0,0,01,32,0,0,4,128,0,0,16,0,017, -128,0,0,16,0,0,2,0,0,136,010,0,0,0x1,32,0,0,0x4,128,0,1,136,0,0,17,0, -0,128,128,32,0,06,8,0,32,2,0,06,32,0,0x3,128,0361,0,0x1,64,0,02,64,0, -0x3,32,0,25,64,0,013,129,0,2,128,196,0,01,0x4,0,0x1,0x1,0,0,16,2,0,0, -136,0,0x2,0x1,2,0,013,8,0,5,1,0,0x4,64,0,8,64,32,0,02,0253,0,01,05, -0x4,0,0x2,32,16,0,0,042,0,0x1,192,0,0x2,02,02,0,021,64,32,0,04,32,0, -0x6,04,0,0,8,128,232,010,32,0x1,64,0,03,16,0,0,19,0,01,0x8,0,0,0x1,32 -,0,2,0x1,0,017,0104,0,0x2,128,0,1,0x2,0,0x2,32,0,0x5,0x2,0371,0,0x7,2 -,0,0x13,128,0,02,128,0,17,64,0,2,191,0,0x1,16,128,0,0,64,32,0x2,0,1,8 -,16,0,0,010,0,0,01,0,02,32,0,18,8,0x4,0,0,042,16,4,02,0,011,247,0,2,8 -,2,0,0,128,0,0,64,0,05,16,0,0,02,4,0,17,64,0,0x1,64,0,0,0x8,0,2,64,16 -,136,0,0,04,32,0,1,0x1,0,0,0235,0,0x1,010,0240,0265,32,192,04,64,0,0, -16,32,24,04,131,4,128,024,014,0124,01,0,016,024,16,0,0,04,0x48,0,0,25 -,32,0252,0x7,0,0,05,160,0240,4,128,0120,64,0120,0,0,197,0,02,0x28,48, -208,0x16,34,0x2,0,0,0140,0132,014,128,64,0,0,8,192,0127,64,0,017,04,0 -,01,0x18,0104,0x1,64,16,05,0241,0132,208,0x7,0144,132,45,56,64,0334,0 -,0,0357,0,02,8,0,0,64,0,0x3,32,16,4,32,0,0,1,32,128,64,0,023,2,0104,0 -,01,16,0x4,128,64,16,0,0x2,32,0x2,0,0x1,0202,191,012,0,0x3,16,32,0,0, -4,0,0,0x8,64,1,0,04,0x1,0,16,02,0,01,010,0,1,32,0,0x1,2,0,1,8,02,64,0 -,0,8,0,0,128,32,197,0,0x6,02,0,0,1,0,0x3,64,0,02,1,0,012,0x4,0,2,04,0 -,1,129,0,1,128,0,03,8,0,01,010,0,04,128,128,0205,0x12,0,012,010,0,27, -04,0,12,0xc8,146,144,0x4,0,1,2,0,0x1,12,0,0,128,0,0,16,4,128,0,023, -0x1,0,0,128,0,011,010,0,04,64,4,192,0324,0,0,2,0,1,16,0,036,8,01,0,03 -,02,0,0x3,128,0,1,64,0,0x1,0x8,0,0,128,0272,0,4,32,0,010,0x4,0,0,4,32 -,0,011,2,0,14,0x2,0,4,32,0,0,0x4,0,0,128,0275,0,01,2,32,0,0,128,0,0x8 -,16,128,1,0,015,16,0,21,128,0341,0,05,0x2,0,057,128,219,18,0,0,010,0, -25,02,0,1,0x8,32,0,024,010,0322,2,0,7,4,0,0x28,0x2,0,02,0240,159,32,0 -,0x3,0140,0,045,02,0,4,128,0,0,48,64,0,01,0342,128,0,03,4,0,0x1,16,0, -01,64,0x4,34,0,0,04,010,0x2,0,18,16,32,0,0,64,0,0,32,0,0x1,128,64,0,3 -,32,0,0x3,148,0,3,0x2,0,1,02,0,07,128,0,0x1,128,0,017,0x2,0104,0,1,04 -,1,0,0,16,04,32,0,0,021,010,02,041,128,0,0,2,1,0,0,0202,0112,0x28,160 -,128,0240,0202,0x16,0122,0x28,0,0x1,32,2,0104,0,0,8,144,161,0,0,128,0 -,013,32,0,01,128,0,0,52,64,0120,208,0x6,16,0114,0101,0141,128,0x5,160 -,0,0,0124,192,128,0122,0,0,128,0352,144,0124,144,0x8,0374,024,0x5,56, -010,64,8,0,01,128,0102,16,011,144,16,32,0,017,128,192,0,0,72,4,224,32 -,16,0x1,0x8,0163,128,0x5,132,128,144,2,144,0341,2,0362,64,64,16,16,0, -2,8,0,4,128,0,0,5,8,0,0x1,128,0,16,128,0,0,0x8,04,128,32,16,0,01,64,0 -,0x6,0x1,2,0323,0,3,0x2,0x1,0,0,0x2,0,0x1,0x1,0,6,0x1,0,021,0101,0,03 -,0x2,0,0x1,128,0,0,0x1,0x4,2,0101,16,0,0x1,64,128,0246,0,17,128,0,024 -,64,0,0x2,04,0,0x5,128,0,02,128,185,0x2,0,0x8,0x1,0,0,0x2,2,0,0,0x2,0 -,0x26,010,0343,04,0,0x1,128,04,034,0,0,32,32,0,0x1,0x8,01,16,4,0,0, -128,0,0,12,0,0x13,32,0,0x1,128,0,02,0x2,0,0,64,010,0,04,16,148,0,0x5, -0x13,64,0,1,64,0,0,36,0,0,64,0,0x15,24,0,0x2,010,0,014,01,0314,0,4, -128,128,0,8,64,0,1,128,0,0x8,64,0,0x2,64,0,03,32,0,1,0x8,0,7,16,0,0, -16,0,01,0240,0362,0,011,4,0x8,0,2,05,0,28,01,0,04,16,0,02,128,0364,04 -,0,0,0x18,0,1,64,1,01,0,02,192,0,5,16,0,014,16,0,010,04,0,0,16,0,012, -0351,0,0,4,0,015,0x28,0,0,64,64,0,0x8,0x21,0,0x5,128,0,0x4,0x1,0,0, -0x4,0,012,239,0,0,0x2,0,01,128,0,0x3,02,4,0,01,32,0,0,64,0,016,02,0, -02,0202,0,01,128,0,1,01,0,010,01,0,1,64,01,0273,0,0,128,0,05,12,128, -0x8,0,0x4,16,0,0,0x4,0,0x1f,64,0,02,128,164,16,0,0x4,16,0,2,32,0,01, -64,128,0,3,16,0,013,8,0,013,021,0,011,158,0,2,16,0,0x5,128,16,0,24,04 -,128,0,1,64,0,02,0x4,0,0x1,32,0,0x5,0202,134,0,03,64,010,0,0,02,0,06, -36,0,02,32,0,0x12,128,0,0x1,0x8,0,0,0x5,0,0,8,0x24,16,16,148,02,129, -64,02,128,0214,0,016,16,8,0,026,8,0,0x2,04,02,128,0,05,010,0,0,02,246 -,0,0x2,128,0x1,0,011,034,0,01,48,0,19,6,0,0x1,0140,0,0,013,0140,0,0, -0x3c,144,01,240,0,0,06,192,0x3,0,0,0214,0,0x2,128,0,012,36,0,0x1,16,0 -,0x13,0x2,0,01,0140,0,0,011,0x28,0,0,024,129,0,0,0120,0x2,3,64,17,2, -0246,0,0x3,0106,0,01,24,4,0,0x5,32,0,1,192,0x2,1,0,021,24,2,0,0x1,64, -0x8,128,061,24,0,0,046,0142,0,0,0130,160,0x1,128,0365,0,02,128,07,0x1 -,0,0,0x1e,0,6,024,0,1,224,0,19,0x1c,0,0x1,24,0,0,011,192,0x1,0x14,0,0 -,7,0120,0,0,034,64,0x1,128,223,0,3,0x6,0,2,04,0,05,16,0,01,192,0,0x13 -,0x18,0,03,4,128,1,32,0,0,06,128,0,0,24,0,0,2,0,0,0376,0,0x3,6,0,011, -32,0,01,192,0,023,24,0,0x2,0104,0x4,128,1,32,0,0,06,128,0,0,24,0,0,2, -0,0,0375,0,01,0x4,0,0,64,010,0,0,27,0,1,014,0102,0,02,4,0,02,32,0,0x6 -,0240,0,06,208,0,0,0120,136,128,64,0,02,011,0,0,0x8,36,32,16,148,8, -128,64,042,128,0365,0,0x6,24,0,0x6,0x1,0,012,48,0,0x6,24,0,0,128,0, -0x1,0x8,0,0x3,0x4,128,0,03,128,0,0,0x8,0,0,129,182,0,0x2,128,0x1,48,0 -,0,036,192,0,0,32,32,0,0,0140,0,0,0x2c,0,0x1,48,0,0x7,48,0,0x6,24,06, -112,0,0,6,192,0,02,017,96,0,0,074,160,0x1,0360,0,0,6,192,0x3,128,0245 -,010,0,0,128,144,0,0,16,0,0,26,64,0,0,64,01,0,0,32,0,0,024,0,0x1,16,0 -,07,0x28,0,6,024,026,148,0,0,0x2,64,0,02,0105,0x24,0,0,024,129,0,0, -0120,128,0x2,64,1,021,0322,0,2,16,0x16,192,0x2,24,0,0,0x13,0,0,132,0, -0,128,5,0x18,0,1,192,0x28,0,6,0x28,0,0x6,0x14,16,0102,0,0,0130,0,0,19 -,1,0,0,6,128,021,26,0,0,026,96,0,0,24,136,0x1,176,173,0,1,014,128,0x7 -,0361,32,0x1c,192,131,120,0,1,224,129,36,0,1,224,0,15,128,07,176,0,0, -28,0xc8,03,0,0x1,5,192,1,024,0,0,07,0122,0,0,034,64,1,128,0345,04,0, -0x2,6,192,0,0,26,0,0,0x3,32,16,0,0,128,01,32,0,01,192,0,16,0x6,64,0,0 -,24,0,0,3,0,01,010,128,01,32,0,0,06,128,0,0,0x18,0,0,02,160,195,0,01, -48,04,0x6,192,0,0,0x1a,0,0,03,0140,04,0,0,128,0x1,16,0,0x1,192,0,16, -0240,144,0,0,24,0,0,0x3,0,01,8,128,01,32,0,0,0x6,128,0,0,24,0,0,02,0, -0,0273,48,0,0,4,0,0,64,8,0,0,0x3,0,0,16,104,0,0,13,0,01,0x4,128,16,0, -0,32,0,016,128,06,0120,132,128,64,03,8,0,0,137,1,8,36,0101,16,148,136 -,128,64,0142,0,0,254,0,011,0142,0,0,014,0,0x1,1,0,0,02,02,0,7,48,0, -0x6,24,06,128,0,01,0x8,03,0,0x3,128,0,0x5,0x8,0,0,128,0264,0,0x2,128, -01,240,0,0x1,192,0x3,0,0x1,017,0140,0,0,054,0,0,0x6,48,0,16,0x6,112,0 -,0,06,192,03,24,0,0,15,0140,0,0,074,128,01,0360,128,06,192,3,128,199, -014,0,1,194,0,0,208,0,01,64,0x3,0,0x1,015,32,0,0,024,0,0,0246,16,0,16 -,6,144,0,0,0x2,64,03,010,0,0,05,0x21,0,0,024,194,0,0,0120,0,0,02,64, -0101,0240,0234,4,0x48,0,0,18,6,8,24,0,01,023,0,0,4,12,128,0205,24,0,0 -,046,194,34,0,6,128,0,06,64,16,0101,0,0,152,16,3,0140,17,6,128,0x5, -0x19,0,0,6,96,0,0,24,128,0x1,0,0,137,0140,0,0,014,128,0x7,48,0,0,06, -196,131,0x18,64,016,224,0x1,36,128,0x7,224,0,7,64,0,0x6,0240,01,176,0 -,0,0x1c,128,03,0170,0,0,05,192,01,0x14,0,0,0x7,0122,0,0,0x1c,72,01,0, -0,219,132,129,0,0x1,0x6,0,01,0x18,0,0,0x3,2,64,12,128,01,32,0,0,0x6, -193,0,17,64,0,0,24,0,0,03,0140,0,0,010,128,01,32,0,0,06,128,0,0,0x18, -0,0,02,16,0341,128,5,48,5,06,0,0,024,24,0105,0x3,0,0,0x4,12,128,1,16, -0,0,38,192,0,07,64,0,6,32,0,0,144,0,0,24,64,0x3,104,0,0,0x8,128,1,32, -0,0,06,128,0,0,24,0,0,2,128,0362,32,021,0,0,32,0,0,0x2,32,26,0,0x1,04 -,02,01,0,0,010,4,128,0,0,208,0,16,16,0x14,0,0,128,64,0x3,0x8,0,0,051, -0x24,0,0,36,1,16,148,0,0,129,64,2,0101,0275,0,0,128,0,8,64,0,1,128,0, -013,010,0,06,04,0,3,8,0x3,0,5,16,0,03,010,0,0,128,0267,128,0101,074, -128,0x1,0360,0,0,0x1e,196,0,0,0x78,0,0,03,0140,0,0,0x2c,128,01,192,0, -7,32,0,06,144,1,192,0,0,06,0,1,96,0,0,017,0144,0,0,074,128,1,0360,0,0 -,0x6,192,3,129,152,8,1,52,128,0,0,208,0,0,0132,64,0,0,104,0,0,1,32,0, -0,024,128,0,0,192,16,0,14,128,0,0,192,0,0,0x2,0,01,96,0101,045,32,0,0 -,024,146,0,0,0120,0x4,0x3,64,021,48,214,128,05,176,0x8,026,193,0x28,0 -,01,147,96,64,014,144,05,24,0,0,64,0,0,02,0,0x6,16,0,0x6,010,0x6,02, -010,031,03,010,0,01,06,128,1,0x19,0,0,0106,0142,0,0,24,128,0x1,144, -0261,224,0101,56,0,0,7,0360,0,0,036,196,3,0x78,0,0,15,224,129,0x24,0, -0,01,0362,32,0,6,136,0,6,0104,07,48,0,0,0x1c,192,128,0170,64,0x5,224, -1,0x14,0,0,7,0120,0,0,034,0120,0x1,96,169,132,0101,48,010,6,192,128,0 -,0x1,03,0140,0,0,014,128,0x1,32,0,0,0x6,01,32,0,15,0x6,0,0x1,24,0,0, -128,0140,0,0,0x8,128,1,32,0,0,06,128,0,0,24,0,0,2,128,0334,128,5,48, -0202,6,208,0,0,24,5,3,0140,129,014,128,01,16,128,0106,0,0,0x8,16,0,06 -,010,0,6,06,0,0,024,24,0,0,16,0,0,041,8,160,0x1,32,0,0,0x6,128,0,0,24 -,0,0,2,0,0,0341,32,16,48,32,0,0,2,0,0,27,0,0x1,014,0,0,015,32,0,0,4, -128,0,0,16,0,7,136,0,06,164,0,0,208,0,0,128,0,0,32,012,0,0,0111,8,8, -36,0x2,16,148,0102,128,64,012,0x4,0274,0,0,128,48,0,3,24,0,0x3,12,0, -0x1a,0x8,0,4,128,0,0,32,0,03,010,0,1,0226,0,0,01,0x3c,128,0x1,48,0,1, -192,0,0,24,0,0x1,0140,0,0,054,128,1,48,0,0,16,0,05,32,010,0,05,144,01 -,48,0,0,0x6,192,0x3,0140,0,0,017,104,0,0,074,128,1,0360,64,06,192,3, -128,195,04,16,54,128,0,0,16,0,1,64,0,0,0x8,0,1,32,0,0,024,128,0,0,16, -0,0,042,0,0x6,17,0,5,128,0,0,16,0104,02,64,3,0,0,0101,133,32,0,0,024, -0240,0,0,0120,0x2,02,64,011,36,147,0214,04,176,0x8,0106,193,0x28,0,0, -4,0x23,0144,17,128,128,0x5,24,0,0,0x26,192,136,0,06,64,0,0x6,32,38, -192,136,24,0x21,131,96,132,06,128,0x1,032,0,0,046,0140,0,0,0x18,0240, -01,128,0362,96,128,56,0,0,7,240,0,0,06,192,03,0x78,0,0,0x3,232,0101, -0x24,0,0,0x7,0344,0,0,2,0,6,1,0,0x5,128,0x7,242,0,0,28,192,03,120,0,0 -,0x5,192,01,024,0,0,0x7,0122,0,0,28,64,1,128,164,136,128,0,0,32,0x6, -192,0,01,0x4,03,0140,0,0x1,132,1,32,0,0,06,192,0,0,16,0,06,8,0,6,6, -192,0,0,24,0,0,128,0140,0,0,010,128,0x1,32,0,0,6,128,0,0,0x18,0,0,02, -144,132,128,8,0,0,0202,6,192,0,2,03,104,0,0,32,160,1,16,0,0,06,192,0, -0,32,0,0x6,16,0,0x5,128,6,208,16,24,0,0,32,0,0,0102,010,128,0x1,32,0, -0,06,128,0,0,24,0,0,2,0,0,176,32,132,0x4,0202,046,0x4,0,0,03,0,01,41, -0,0,01,32,0,0,0x4,128,0,0,208,132,02,0,0x6,1,0,6,6,024,02,128,64,011, -4,0102,137,16,010,36,1,16,148,64,128,64,18,192,178,0,0x2,8,0,5,64,32, -0,07,010,0,06,04,0,6,0x6,0,0,32,0,0,0x8,2,0,3,128,0,0,32,0,0x3,010,0, -0,2,0263,128,01,0x1c,0,0,0x6,49,0,0,6,192,0,0,56,0,01,0140,0,0,0x2c, -128,07,192,0,15,128,7,64,0,0,6,192,0x1,0x18,0,0,017,0140,0,0,0x3c,128 -,0x1,240,64,06,192,03,0,0,0307,8,16,134,0x8,64,16,0,0,2,64,0,0,72,0,1 -,32,0,0,0x14,128,0x6,0,0,32,0,14,128,6,128,32,2,64,2,0x8,0,0,05,48,0, -0,0x14,0242,0,0,0120,4,2,64,0x21,0262,0271,0,0,021,02,0102,0106,196, -0x8,0x18,1,0143,32,0,0x1,132,17,24,0,0,64,192,128,04,0,06,2,0,06,16, -01,0x2,24,0,0,1,96,36,06,128,0x21,24,0,0,134,0140,0,0,0x18,0202,0x1, -144,195,0140,0,0,014,128,07,0360,32,036,196,03,0130,0,0,03,224,0101, -36,0,0,0x1,0362,0,017,128,0x1,240,128,0x1c,144,2,120,0,0,05,192,0x1, -024,0,0,7,0120,0,0,28,64,0x1,128,198,04,1,0,0,32,02,192,0,0,24,0,0,3, -32,0,0,014,128,01,32,0,1,0101,64,18,0,0x6,011,0,0x7,64,0,0,24,64,01, -0140,0,0,8,128,01,32,0,0,0x6,128,0,0,24,0,0,02,144,167,128,0x21,0,0x1 -,4,193,0,0,24,0,0,3,64,0,0,0114,161,0x1,16,128,0,0,128,0,017,128,0,0, -192,02,0x19,0,0,0x2,0140,0,0,0x8,128,0x1,32,0,0,0x6,128,0,0,0x18,0,0, -0x2,128,231,32,132,0,0,160,0x26,04,0,0,0x13,5,16,104,0,0,32,36,0,0,04 -,128,0,0,208,132,0x8,0,06,4,0,05,128,0,0,16,64,128,64,0,0,0x28,64,137 -,04,8,164,32,16,148,132,128,64,012,128,0216,0,06,8,0,1,0142,0,0x8,014 -,0,6,06,0,012,010,0,0,64,0,0x2,128,0,0x5,0x8,0,0,0x1,0317,0,0,01,074, -0,0,06,48,0,0,14,192,03,0x78,0,0,3,0140,0,0,054,128,1,192,0,16,6,64, -32,0x6,192,0,0,32,0,0,017,0144,0,0,0x3c,0240,01,0360,128,6,192,0x3, -128,0325,04,16,0x36,0,0,64,0x12,0,0,18,64,0x3,104,0,0,01,32,0,0,0x14, -128,0,1,36,0,017,64,132,010,2,64,0,0,64,0,0,0x5,32,0,0,148,128,0,0, -0120,010,0x2,64,011,0241,218,0214,0x1,0261,8,0106,196,042,16,0,0,0x23 -,0140,0,0,0214,132,011,24,0,0,0x26,0xc8,128,0,06,24,0,0x6,0104,198,0, -0,0x2,24,01,013,32,0,0,0x6,128,0205,24,0,0,0x16,104,0,0,0x18,131,1, -128,0325,96,0,0,56,128,0x7,0360,0,0,8,192,131,112,0,0,017,224,0101,36 -,0,0,7,0360,0,017,128,0x1,240,128,0x1c,136,131,0x58,0,0,5,192,01,024, -0,0,0x7,0120,0,0,28,64,1,128,213,136,1,48,0,0,2,192,0,0,010,0,0,03, -0142,0,0,014,128,0x1,32,0,0,6,64,0,16,0x6,0101,0,0,24,0,0,0x3,32,0,0, -010,128,01,32,0,0,6,128,0,0,24,0,0,0x2,144,193,128,0x28,48,012,36,193 -,0,0,16,64,03,104,0,0,015,0240,1,16,0,0,6,128,0x4,1,0,016,0106,192,02 -,25,0,0,03,64,0,0,010,128,01,32,0,0,06,128,0,0,0x18,0,0,2,128,134, -0240,0,0,0x5,128,0x26,0x14,0104,18,0,0,16,0x8,0,0,0x1,32,0,0,0x24,128 -,6,16,0,017,128,0x2,16,0,0,128,64,3,0x28,64,011,16,010,36,0x12,16,148 -,72,128,64,02,192,184,0,0,1,0,0x4,010,0,0x1,2,0,3,16,0,0,06,0,16,0x28 -,0,0,04,0,1,0x8,0,0,64,0,02,128,0,5,0x8,0,0,01,186,128,0,0,014,16,0x6 -,64,128,0x16,192,03,0x78,0,0,0x3,128,0x1,054,0,0,6,192,0,07,72,0,7,06 -,48,0,0,06,192,131,32,0,0,017,96,0,0,074,144,01,0360,64,0x6,192,0x2,0 -,0,0377,0x8,01,52,0x2,64,129,0,0,012,64,03,104,0,0,0x1,0,0,04,0x16,0, -0,0x6,192,0,0,16,0,5,64,0x8,0,5,32,042,24,0,0,2,64,0,0,64,0,0,0105,48 -,0,0,0x14,128,0,0,0120,0,0,2,64,16,0261,208,128,0,0,176,0x8,0106,4,02 -,014,0,0,147,0140,0104,0214,0202,0105,24,0,0,0x6,192,36,010,0,05,64, -0x4,0,0x5,32,024,0xc8,0104,24,17,131,32,0,0,0x6,128,0x5,24,0,0,0106, -104,0,0,24,144,0x2,144,0313,96,0x1,074,128,07,48,32,16,192,03,0x78,0, -0,017,96,0,0,36,128,0x7,242,0,0,28,0,0x5,64,016,0,5,0240,07,240,0,0, -034,192,3,0x58,0,0,5,192,0x1,0x15,0,0,07,0120,0,0,0x1c,64,0x2,0,0,185 -,132,0,0,48,010,2,0,01,010,0,0,0x3,02,16,014,128,01,16,0,0x1,192,128, -026,0,5,64,013,0,5,32,04,192,0,0,0x18,0,1,34,0,0,010,128,1,32,0,0,6, -128,0,0,24,0,0,2,144,191,0,0,0x1,48,1,024,129,0x4,021,64,03,0,0,2,12, -128,041,32,0,01,196,04,16,0,5,32,8,0,0x5,16,06,194,0,0,24,0,0,0x3,64, -0,0,010,128,1,32,0,0,0x6,128,0,0,0x18,0,0,02,128,0246,0,0x3,1,32,0,0, -132,128,0,3,64,0,0x5,16,0,06,8,0,06,01,0,03,16,0,02,64,0,011,216,32,0 -,0,4,0,0x4,04,0,0x2,2,0,1,0x4,0,0,01,16,0,07,32,0,0x6,16,0,2,02,0,01, -2,0,0,0x1,0,01,4,128,0,0,16,0,0,2,64,0,0,128,0362,0,012,32,0,0x2a,128 -,217,36,0,0,04,128,0,0,16,0,0,2,64,0,0,010,02,0x1,32,0,0,0x4,128,0,0, -16,0,15,128,0,0,16,024,2,0,0x1,014,18,1,32,0,0,04,128,0,0,16,0,0,0x2, -64,0,0,144,0213,12,0,0,136,0,0,01,36,0,0,128,128,0,0,16,01,64,02,0,0, -8,0,0,16,042,0x2,0,15,64,36,0,0,64,144,128,0,0x3,16,0x1,0,0,64,04,0,1 -,021,0,0,48,0254,32,0,1,0240,0,0,16,0,0,0x4,0104,0,1,16,0,0,64,0,01, -128,0x1,0,0,128,0,017,02,0,1,8,0,01,16,0,0,4,128,0,0,16,0,0,0x2,64,0, -0,0x8,0,0,1,128,246,010,0,013,8,0,0x28,0240,0323,32,0,03,16,0,0x1,64, -0,2,128,32,0,0,4,128,0,19,16,0,01,64,0,0,8,0,0,01,0,0x1,4,0,1,16,0,1, -64,0,0,128,197,0,011,32,0,0,04,0,026,4,32,0,7,32,128,0,0x7,0323,0,1, -128,0,026,010,1,0,5,0x24,0,8,16,0,012,0232,0,7,64,0,03,010,0,03,03,0, -023,042,0,0x6,32,4,0,0x2,0101,0,2,146,0,012,64,0,4,0x4,32,0,023,0x2, -18,0,0x7,010,0,0x3,2,0,0,134,0,16,010,0,032,8,0,02,0x4,0,0x2,192,0,0, -128,0371,0,01,32,0,0x13,0120,0,0x6,0x28,0,6,64,0,8,2,0,05,135,0,04, -0x2,0,0x3,041,0,0,0x1,0,0x15,128,0,0,0102,0,04,16,1,0,02,32,02,0102, -32,04,0,0x1,1,0226,010,0,5,0x8,0,4,128,64,0,02,64,0,16,1,024,128,8, -0x4,0x1,0,01,4,136,64,16,0,3,8,0x4,0,0,2,0310,0,04,02,0,0,02,32,0x1, -17,0,0,02,32,0x28,021,0,0x1,16,0,017,128,01,0x36,128,062,0120,0,1,32, -03,0x28,0,0,05,16,01,042,64,6,16,0,0,7,0365,128,0,0x3,16,0,0,16,8,0,0 -,0x8,0241,04,64,47,16,36,0,0,192,072,0,017,132,128,072,042,02,012,05, -2,184,131,0101,144,0,0,0x2,193,39,010,04,0x1,129,221,128,0,012,4,0,1, -0x4,0,1,32,32,0,021,128,0,5,8,0101,04,128,0,0,0104,128,8,132,0,0,128, -0311,8,0,05,010,0,04,128,128,0,0,010,0,0,64,16,0,016,128,0,0,0101,32, -0,0,132,0,02,4,0102,0,03,16,0,4,0352,0,012,32,0,0,4,0,02,0x2,0,0x7, -0x8,2,0,5,4,0,016,010,0,2,04,128,0275,18,0,0,16,64,0,0,64,0,017,4,0x1 -,0,0x1,0x4,0,02,0202,0,02,0202,0,2,128,16,0,016,72,132,0,0,2,0,0x21, -136,04,0,0,16,0,04,128,1,0,01,128,0,0,64,16,0,01,128,0235,16,0,013,1, -0,0x17,16,0,04,2,8,0,0x2,04,0,01,042,0,0x1,64,252,32,0,0,4,0,19,0x8,0 -,6,04,0,06,01,0,6,0x8,0,6,128,0256,0,013,0x3,0,0,129,0,21,0120,0,2, -0x1,16,0,014,0226,0,011,16,0,23,128,0,0x7,0x4,0,011,0x4,164,0,48,1,0, -04,128,0351,128,0,0,128,0,0,1,0,054,32,0,04,201,0,47,128,0,0,32,0,0x3 -,144,192,32,0,0,16,0,1,0101,0,1,4,0,025,16,0,02,128,0,0,024,0,011,32, -2,132,32,010,010,129,0,0,0323,32,0,0,0x1,0,01,2,0,02,0101,0,2,128,0,0 -,01,136,0,01,32,0,013,16,0,03,64,0,0x2,128,32,16,0,0,128,0,3,64,0,1, -0102,0,0,128,147,0140,0,0,011,0,01,046,0,0,8,72,0x1,02,0,0x1,32,0x28, -161,168,0,1,0240,0,012,32,8,0,0x2,21,062,0,1,04,0,0,012,64,0,0,32,0, -01,16,01,0x32,64,0x4,216,0,0,193,146,32,64,16,0124,36,64,2,0142,5,8, -96,014,129,02,0164,0240,012,0,0,64,4,0,0x2,0140,16,0,0,0x1,0,03,32, -010,128,64,0,0,132,160,32,136,3,118,010,0,01,0202,64,112,04,0x4,0101, -0x37,0x8,06,0135,0,0,0233,0,01,021,0,0x1,64,0,01,4,0,0,32,0,01,2,128, -0,0,0x8,0,0,64,0,03,64,8,0,0,2,0,4,4,0,0,0x21,0,0x2,32,0x8,0,04,132, -64,04,0,0x1,0104,64,0x4,0x8,1,128,0353,0,0x2,0x8,01,0,04,16,16,0,1,64 -,16,0,6,32,0,06,32,0,0x3,0x2,021,0,1,04,129,0,0x4,16,0240,0,0x1,16,0, -0,16,0,0,129,218,0,012,128,0,0,128,0,27,4,0,013,128,0265,0,0,1,013,32 -,0,0,16,2,0,0x1,010,128,0,0x1a,03,0,0,8,0,0,64,64,0,0,1,0,011,136,4,0 -,04,128,0,01,128,2,17,2,32,0,0,0x2,0,19,1,0,0x6,1,0x4,0,1,0x8,0,0,64, -0,1,48,0,0,16,155,0,02,0x4,128,0,4,0x2,0,4,128,0,1,18,0,0x18,32,0,0,8 -,0,01,0x4,0,0x3,129,0262,64,0x4,0x8,0,027,0x4,0,06,2,0,0,01,0,4,021,0 -,0,32,0,4,128,0,0x2,128,232,32,0,0,04,0,021,164,0,0x1,64,0,3,0122,0,1 -,32,0,1,128,0,016,2,0,3,237,0,0x3,16,0,16,010,0,6,0x4,0,0,32,0,7,128, -0,011,2,0,0x1,128,0254,0,0x2,0x8,0,06,8,0,04,0x2,0,0,32,0,0,64,0,6,32 -,0,014,8,0,2,1,64,0,03,010,0,0,128,0360,0,03,04,0x4,0,013,16,128,0x1, -0,017,010,0,0x1,0x2,0,05,1,16,0,2,4,0,0x1,128,213,0,17,0x8,0,0x5,64,0 -,011,16,0x2,0,3,02,0,02,0104,0,0x1,16,0,0,16,64,0,0,4,0,0,0252,0,0x4, -16,0,0x1,128,0,04,1,0,03,0x2,0,0x2,0x5,32,0,4,128,0x2,16,0,2,0x12,16, -0,07,4,0,06,128,0,0,133,0,3,16,0x4,0,4,1,0,0x4,010,0,0x3,1,0,5,128,0, -0x6,01,32,0,0x1,0x8,0,0,48,0,012,16,231,32,0x8,0x4,128,02,16,04,02,0, -0,03,011,0,0,0x1,32,0,0,52,128,0x26,0,0,04,0,16,192,72,26,64,01,0,01, -05,128,0x5,0x14,041,0,0,208,0,3,128,0372,0,0,128,0,1,0x4,0,0,128,0,7, -48,0,0,0x6,04,128,0,0x14,2,0,1,8,0,0x1,17,0,6,128,0353,0,0x1,12,128,5 -,64,0,0,026,192,3,0130,0,1,0140,1,014,0,0,4,48,0,021,0360,0,0,036,192 -,0x2,0,1,013,224,1,0x2d,0,1,0360,64,0,3,0214,0,0,010,0x5,128,0x2,128, -128,012,64,64,0x28,0,0x1,160,0,0,04,0,0,0x2,024,0,17,16,0,0,0103,0x48 -,1,0,0x1,0x5,32,16,024,0,1,16,0x4,0,2,128,134,0,0,0x8,48,02,0103,02, -042,12,011,0,0,48,0x24,0,0,0310,144,0,0,0x2,0106,192,0,19,128,144,011 -,02,0,0,0x26,0x8,0,0,0x28,021,0,01,0104,0,03,0261,0140,0,0,57,136,4, -240,0,0,18,192,3,72,0,0,0x3,32,0x1,0x8,136,0x1,0361,128,0,16,224,0,0, -0x6,0,0,02,0,01,010,192,1,32,0,01,48,0,0x4,241,128,1,061,0,0,04,64,0, -0,16,0,1,64,0,0,014,0,0,0x1,48,0,0,0x4,192,0,0x13,24,010,02,0,1,8,0,1 -,32,16,0,0,192,0,03,128,0241,128,0,0,48,0,0,34,193,0202,136,0104,0x3, -32,0x12,0114,129,72,48,4,64,0321,0,17,192,0,0,152,0,0,145,0,01,0104, -0202,1,16,0,0x1,192,132,0,0x3,0326,32,0,0,0x4,128,0,0x1,0102,2,0,0,16 -,010,0,0,0x1,32,0,0,04,0,0,16,2,04,0,6,136,0,06,0104,6,192,0x48,152, -64,0,0,0140,0x4,1,128,0x5,4,041,0106,16,0,0,012,03,0,01,129,0,011,02, -0,07,128,0,06,48,0,0x6,0x18,0,0,04,0,1,16,0,0x1,32,0,2,01,0,01,04,0,0 -,16,0,2,0245,128,1,014,128,05,48,0,0,0x16,192,0,0,0x58,0,0,014,0140,1 -,12,128,01,48,0,07,48,0,06,152,0x7,240,0,0,036,192,0x2,120,0,0,013, -224,129,054,128,07,52,128,016,0,1,128,164,8,144,0x4,128,02,16,0,0,012 -,64,0,0,0x28,0,0,64,176,0,0,0x4,128,0,0,16,0,7,0x28,0,06,148,32,0x12, -0104,2,0141,01,010,128,05,32,0,0,024,128,64,16,02,18,0,01,0240,0246, -128,17,176,0,0,0103,194,0x48,014,011,3,48,0x24,0214,0310,144,176,0,0, -0x6,0xc8,132,0,06,0x28,0,6,0x14,0,0x3,128,011,02,0,0,38,8,0,0,0x28, -021,0,01,042,8,0,1,128,197,224,1,57,136,04,0360,0,0,0x12,192,3,0111,0 -,0,15,32,0x1,56,136,0x7,0360,0,16,07,224,0,0,034,0,0,02,112,0,0,010, -192,01,32,0,0,07,0360,0,0,026,0,2,179,132,1,49,0,0,04,192,0,0,16,0,0, -3,64,0,0,014,4,1,48,0,0,0x6,192,0,025,02,0,1,010,0,0x1,32,0,1,192,128 -,8,0,01,144,0205,128,011,48,0,0,02,193,0,0,010,4,03,32,16,0114,128,64 -,48,0,0,0x6,208,0,16,06,192,0,0,26,0,0,129,0140,0,0,04,0202,0x1,16,64 -,06,192,0x8,18,0,0x1,128,136,32,0x8,04,128,0,1,0102,0x2,64,010,010,0, -0,054,48,0,0,4,0,0,16,2,0x4,0,017,06,192,72,032,64,0,0,8,0,0,01,32,0, -0,0x4,041,0x16,208,0,0,2,02,131,128,219,0,0,128,0,7,2,0,0x7,128,0,16, -0x4,0,013,0x4,0,0,0x18,0,02,132,0,0x1,13,128,5,48,0,0,026,0,0,01,0130 -,0,0,03,0140,01,014,128,0x1,48,0,017,128,07,0360,0,0,036,192,2,0x18,0 -,0,013,0140,0,0,0x2c,128,0x7,240,0,1,192,03,129,0321,0x4,4,4,128,0x2, -16,0,0,012,0,0,02,0x2a,0,0,0x1,0241,0,0,4,128,0,0,16,0,15,128,0,0, -0x12,0x8,03,0120,01,010,0,0,05,32,0,0,024,128,0,0,24,0202,0x18,0x49, -16,16,152,12,144,48,0x1,0103,194,0104,014,011,136,48,36,32,0xc8,144, -48,011,026,192,128,0,18,128,144,011,0142,17,0x26,136,011,0x28,021,0, -0x1,0104,0x18,0x1,0,0,176,0252,0140,0,0,56,136,0x4,240,0,0,18,192,03, -0x48,0,0,0x2,32,1,56,128,7,0364,0,16,07,224,0,0,06,0,0,0x2,0x78,0,0,8 -,192,0101,32,0,0,0x7,48,0,0,026,136,3,0,0,191,136,129,48,0,0,0x4,192, -0,0,16,0,0,1,64,0,0,0x1,4,0x1,48,0,0,6,192,0,023,0x18,0,0,0x2,0140,0, -0,010,0240,1,32,0,0x1,192,0,0,24,0,0x1,0240,128,128,8,48,0,0,0x12,193 -,0,0,0x48,4,131,32,021,129,128,0104,48,0,0,6,208,0,07,32,0,0x6,16,06, -192,0,0,24,32,137,104,0,0,36,0242,1,16,16,6,192,0104,128,32,03,128, -198,0240,49,0x34,128,0,1,0102,02,64,32,012,0,0,0101,0x24,0,0,0x24,6, -16,02,4,0,017,06,192,72,2,64,0,0,96,0x1,0x1,0240,01,0x4,0x21,0106, -0322,0,0,0132,64,0x3,128,197,0,01,48,0,0x5,3,0,4,48,0,0x2,128,0,0x6, -32,0,06,16,0,0,04,0,0,24,0,0x2,64,0,0,128,0x1,0,2,192,0,1,16,0x3,0,0, -157,128,1,014,128,05,48,0,0,0x16,0,0x1,0131,0,0,03,0140,1,28,128,0x1, -48,0,7,8,0,6,132,07,0364,0,0,6,192,2,0170,32,013,224,0x1,054,128,0x7, -192,0,0x2,131,0,0,0321,8,41,4,128,0x2,16,0,0,012,0,0,1,0x28,0,0,0x1, -164,0,0,0x34,0205,0,0,16,0,017,128,64,16,64,26,0102,01,010,2,5,0240, -0x1,0x14,128,32,02,32,128,16,043,0240,144,128,010,02,0,0,0103,194,128 -,014,011,0x23,064,0x24,32,192,144,0,0,011,6,194,16,0,06,32,0,06,16,0, -02,128,144,011,2,0,0,38,136,0x1,0x28,021,0,0,192,4,72,8,0,0,132,0273, -224,0x1,010,136,0x4,240,0,0,18,192,0x3,0x48,0,0,012,0x24,0x1,034,128, -07,0360,0,07,136,0,0x6,0104,7,224,0,0,06,0,0,2,112,0,0,010,192,01,32, -0,0,07,0360,64,0x1e,192,0x3,128,0321,132,0,0,48,010,04,192,0,0,16,0,0 -,0x2,0102,0,0x1,010,01,0,0,8,0x6,192,0,0x13,24,0,0,0x2,0,1,8,160,0x1, -32,0,01,192,128,010,0,0,0x3,16,0212,128,0x5,0x31,0x2,0102,193,0,0,010 -,0205,0x21,32,0x14,32,128,0120,32,0x1,6,208,0,16,6,192,0,0,0x18,0x8, -0241,96,0,0,132,0242,1,16,17,6,192,0x4,0120,32,0213,0,0,0346,32,16,04 -,128,0,0,16,4,0x2,64,02,8,0,0,32,48,0,0,36,06,16,2,04,0,06,16,0,06,8, -134,208,0,0,012,0141,0,0,010,0,0,1,128,0x5,0x4,041,0x16,208,0,2,131,0 -,0,167,128,129,0,3,128,0,01,0x1,02,0,0x3,16,0,0x2,128,0,0x6,32,0,6,16 -,0,0,192,0,0,010,0,06,01,0,1,0x4,0,3,128,0212,0,0x1,12,128,5,64,0,0, -026,0,0,0x3,0132,0,0,03,0144,01,054,128,01,48,0,017,128,0x7,196,64,0, -0,192,2,24,0,0,013,224,0x1,0x2c,128,0x7,240,0,0x1,192,3,2,0234,0214, -32,04,128,0x2,128,128,012,0,0,19,0x28,0,0,129,0240,0,0,0x14,128,0,0, -16,0,07,8,0,06,132,64,192,2,0,0,0120,01,010,129,5,32,04,0x16,128,32, -0x12,0,0,0x1,64,32,32,0347,132,0x5,48,012,0103,2,8,12,011,02,0x34, -0x24,0,0,192,144,32,0,0,198,192,4,01,0,05,64,0,06,32,0,0,192,0x8,0x1, -0202,011,02,0,0,046,010,0,0,0x28,021,0,01,0104,0,3,196,232,0101,56, -128,0x4,0360,32,0x12,192,0,0,0x48,0,0,0x2,0x28,01,24,128,7,0360,0,0, -04,0,6,02,0,06,07,240,0,0,0x6,0,0,0x2,16,64,010,192,1,32,0,0,07,48,0, -01,128,0x3,0,0,0326,16,129,48,0,0,0x4,0101,0,0,16,0x4,3,64,16,015,010 -,0101,32,0,0,0x6,192,0,0,32,0,6,16,0,8,128,16,0,0,0202,010,64,8,2,0,0 -,32,0,1,192,128,0,02,16,146,192,0x4,48,0,0,0102,192,0x28,8,1,8,36,0x4 -,041,128,16,16,0,0,0x6,208,0,0,4,0,0x6,02,0,06,0x6,192,010,148,32, -0x21,0140,01,132,128,1,144,32,0x6,192,0,0x2,3,0,0,0216,32,0,0,52,128, -0,0x1,0102,0x2,0,0,16,8,0,0,0114,0x28,0,0,04,128,32,16,0x2,011,0,0x6, -0x4,0,05,128,0,0,0120,0102,012,0x49,0,0,8,0,0,0x1,128,021,04,041,0106 -,16,0,0,2,0,0,131,128,0377,128,01,0,07,02,0,6,04,0,0,16,0,06,8,0,07, -128,0,0,0x8,0,06,1,0,1,4,0,0x4,152,0,1,015,128,5,48,0,0,026,192,0,0, -0x58,0,0,017,0140,01,12,0,0,02,48,0,0,0x2,0,0x6,0x1,0,0x8,128,0,0,192 -,0x2,0x18,0,0,013,224,129,054,128,7,0,01,0x6,0xc8,0x3,0,0,162,010,16, -0x4,0205,02,16,0,0,012,64,0,0,0x28,0,0,041,168,0,0,0x4,0,0,0x4,024,64 -,0x14,0,0x6,012,0,05,010,128,0,0,0x4,128,72,1,8,0,0,05,32,0,0,024,128 -,0,0,02,0,0,0232,64,16,161,149,128,05,062,64,0103,194,0,0,12,011,013, -49,36,0,0,192,144,48,0,0,32,1,0,017,64,16,0104,04,0,0,128,011,0142,18 -,0x26,010,0,0,0x28,021,0,0x1,04,0x18,5,0,0,128,0251,96,0,0,074,128, -0x4,0360,64,0x12,192,03,0x48,0,0,016,32,1,0x38,136,0x7,0240,64,8,0, -0x6,04,0,05,0240,0x1,0360,64,6,16,0x2,112,0,0,0x8,192,1,32,0,0,7,48, -128,036,128,0x3,0,0,252,132,01,48,0,0,0x4,193,0,0,16,4,3,64,16,1,0,0, -0101,48,0,0,02,0,0,128,0,14,4,0,0x2,16,16,0202,104,0,0,010,0x2,0,0,32 -,0,1,192,32,24,04,0,0,144,0353,0,0x1,2,011,0x12,192,0,0,72,0,0,0x3,32 -,0x1,015,128,4,48,0,0,026,0x1,0x2,4,0,5,0x28,2,0,05,36,0x16,0xc8,0x2, -145,0,0,011,104,0,0,36,128,01,144,64,6,192,0,0,0130,0,0,0x3,128,224, -32,0,0,04,128,0,0,208,0x4,02,64,16,011,0,0,01,32,0,0,04,128,0104,1,04 -,4,0,06,02,0,6,134,192,0,0,0x1a,64,0,0,104,0,0,0x1,128,0x5,0x4,0x21, -0106,16,2,0x2,0,0,131,128,0334,0,04,192,128,0,0x1,3,0,6,0x2,0,0,128,8 -,0,0x5,144,0x4,0,010,128,0,0x2,0140,0,0x3,01,0,0x1,4,128,0,3,0312,128 -,1,014,128,05,128,0,0,026,0,01,0131,0,0,014,96,1,014,128,03,48,0,0,02 -,0,06,01,0,5,164,7,240,0,0,036,192,2,96,0,0,013,224,0x1,054,128,07,64 -,0,0,06,192,3,128,0345,014,144,04,128,2,64,128,012,0,0,1,0x28,0,0,64, -176,0,0,0x4,128,0x4,16,0,07,8,0,06,128,32,18,0104,0202,72,01,0140,0,0 -,5,32,132,024,128,32,0102,0104,02,64,0,0,164,0312,132,0x1,062,8,0103, -194,32,014,011,19,064,36,0114,208,144,176,8,4,192,0x8,0,06,32,0,012, -128,144,011,02,042,38,8,0,0,0x28,021,0,0,128,0x18,0,0,021,0,0,128, -0265,232,0x1,0x38,128,4,48,0,0,18,192,3,72,0,0,15,32,0x1,56,128,0x2, -0360,128,0,017,07,224,0,0,6,0,0,02,24,0,0,010,192,0x1,32,0,0,7,176,0, -0,0x6,128,0x3,0,0,168,144,129,48,0,0,04,129,0,0,16,4,2,64,16,014,4, -0101,48,0,0,2,192,0,0x13,24,010,0202,0,0x1,0x8,0x2,0,0,32,16,0,0x2, -0x18,0,01,16,178,128,17,48,0,0,2,0,0,042,0x8,128,021,36,0,0,014,128,0 -,0,48,0,0,0x4,208,0,16,6,192,0,0,24,0,0,01,0,1,4,128,0x1,16,0x1,6,32, -64,0x18,0x2,3,0,0,0257,176,061,0x34,128,0,01,0102,0x2,64,0,0,010,0,0, -0114,32,145,4,128,0x4,0,0,0x4,0,017,0x26,192,0,0,032,64,012,0x2a,02, -41,0x28,0,0,36,0x21,026,0120,8,012,0120,0,0,128,208,0,01,48,0,011,136 -,0,2,0x2,0,0,128,0,16,04,128,0,01,0x1,64,64,04,0,1,16,0,0x1,0104,128, -16,0,1,128,131,128,01,014,128,0x5,48,0,0,0x16,0,01,0132,0,0,017,0140, -01,12,128,5,48,0,0x7,0x48,0,6,164,0x7,240,0,0,036,192,02,32,0,0,013,0 -,1,0x2c,128,0x7,0,0x1,0x8,0,01,128,135,014,137,4,128,2,16,0,0,012,0,0 -,043,0x28,0,0,0101,164,0,0,04,128,02,16,0,0,16,0,05,64,010,0,05,0240, -0,0,0x12,0,0,131,0140,1,64,0,0,5,0,0,0104,0x14,128,0,0,02,0102,16,0,0 -,010,164,0215,132,16,0,0,64,0103,194,02,015,011,013,064,36,0,0,64,01, -48,012,3,192,72,010,0,0x5,64,04,0,0x5,32,0,0x2,128,144,0x2,32,0,0,012 -,128,0x5,051,021,0,0x1,136,010,0,01,128,186,232,0101,0x8,128,4,0360,0 -,0,0x12,192,0,0,72,0,0,016,32,1,56,128,4,0360,0,0,034,0,0x5,64,016,0, -05,32,7,224,0,0,6,0,0,0x2,0130,0,0,010,0140,0,0,32,0,0,7,48,0,0,0x16, -192,0x3,02,135,144,0,0,48,0,0,4,193,0,0,16,4,3,0102,16,01,0,0,01,48,0 -,0,02,192,0,0,0x16,0,05,64,013,0,05,32,0,02,24,0,0,2,32,0,0,0x8,0,0, -128,32,0,0x1,128,0,0,8,0,1,146,148,128,133,48,011,042,192,0,0,136,0,0 -,010,32,02,015,0,0,1,48,0,0,04,208,0,0,16,0,5,32,8,0,5,16,0x6,192,0,0 -,152,02,02,64,0,0,8,0,0,4,32,0102,6,128,0,0,021,0,0,8,128,156,0,7,128 -,0,0x2,64,0,0x4,64,0,0,16,0,06,8,0,015,01,0,1,132,0,010,185,32,0,0,04 -,128,0,0,16,0,0,0x2,64,0,0,0x8,0,1,36,0,0,04,128,0,011,8,0,06,132,0,0 -,16,0,0x1,64,0,0,32,16,1,64,0,0,4,128,0,0,16,0,1,64,0,0,128,0272,0,12 -,4,0,031,010,0,016,0261,0x2c,0,0,4,128,0,0,16,0,0,02,64,0,0,010,0,0, -32,32,0,0,04,128,0,0,16,0,017,128,0,0,16,0,0,0102,64,0,0,8,0,0,01,32, -0,0,0x4,128,0,0,16,0,0,2,0121,0,0,16,0252,4,0,0,0x8,02,2,64,0,0,010,0 -,0,1,32,0,0,128,144,0,0,0x8,2,0x2,0,0,02,0,017,32,0,0,0x24,128,0,0,16 -,0,0,12,64,0,0,010,0,0,1,32,0,1,04,0,0,96,48,0257,0x28,0,1,32,0,7,1,0 -,0x1,04,32,0,0,16,64,0,16,0x2,0,0,0x4,0xc8,0,0,01,0,0,0x3,0x4,128,0,0 -,16,0,0,34,0,3,128,0226,16,0,013,04,0,0x4,64,0,16,02,64,0,3,32,0,0x1, -128,0,0,16,0,0,0x2,0,3,041,0217,32,0,0,0x4,128,0,0,16,0,0,0x2,64,0,0, -8,0,0,041,32,0,0,04,128,0,0,16,02,0,017,16,0,0,02,0,0,64,0,0x1,01,01, -0,0,04,128,0,0,16,16,0,0,0x2,0,0,0x8,128,0344,0,8,010,0,35,32,0,010, -219,0240,0,012,18,0,0x8,0x8,0,06,04,0,0,64,0,0,32,0,0,136,0,01,0x1,32 -,0,04,32,64,64,136,0,0x3,0104,128,235,32,0x1,0,012,010,0,0x2,1,0,026, -2,128,16,010,0,0,128,0,0x2,0x2,0,0,0x4,0,01,128,0263,0,7,128,0,0,03,0 -,1,16,0,0x4,16,0,16,32,0,012,01,0,0,2,0,3,0321,0,0,0x2,0x2,16,0,5,0x4 -,0,0,04,0,2,16,0,0,64,0,6,04,0,06,0x2,0,0,02,64,0,0,011,0,0x1,32,0,01 -,128,0,0,16,0,0,02,128,0,1,48,0x1,128,139,0,0x8,010,0,0x2,012,0,010, -64,0,21,01,0,0,0x8,0,6,129,0x2,0,03,0x1,32,0,0,04,0,01,16,2,2,0,0x2, -01,64,64,0,017,01,4,0,0,0x8,4,0,0,32,16,0x2,0x1,0,011,0236,0,03,1,0, -03,0x1,0,0x2,64,32,4,0,1,1,32,0,024,128,0,02,4,64,16,0,5,1,0,0,0342,0 -,01,0240,128,024,2,0x58,0120,72,128,64,0x21,0252,0x25,0x28,07,0,0,193 -,0x24,192,0,15,0x15,131,026,4,8,012,0322,32,0152,13,0,0,0x5,0x5,0264, -0,02,64,0120,0,0,0321,0,01,0360,014,0x2,0101,0,0,0x18,6,0x1,32,24,01, -0x21,129,05,046,0214,128,32,0,016,128,248,0,0,0216,232,0105,0174,0240 -,23,0344,136,0133,0104,129,176,0124,136,042,0,0,248,0,0,185,8,0,0,16, -16,02,041,0,0,0x8,4,0x1,32,16,0,06,32,0,18,010,0x4,0,0,32,16,2,64,64, -0,0x2,64,0,03,2,149,0,0x1,32,16,0,2,4,16,0,0x1,32,0,0,0x2,01,0,0,4,2, -34,0,17,0x1,0,2,128,0,2,128,0,3,2,0,2,128,0,0,241,0,21,0x8,0,6,04,0, -21,04,0,01,0261,16,0,012,32,0,41,192,0276,0,0,32,0,0x2,64,0,0,1,0,0, -128,0,6,0x2,0x4,042,0,0x12,046,0,0,64,0,7,16,0121,0,2,128,0347,010, -128,0,02,0140,0,013,128,0,0,1,0,15,2,64,16,0x2,0,8,192,161,0,2,32,160 -,0,0,64,0,17,2,0,0x6,01,0,25,128,0257,0,0,64,0,6,01,0,01,010,0,5,0x1, -0x4,0,04,1,0,0,0x2,0,3,128,0,0x3,128,0,0x3,64,0,3,32,0,0,0x4,0,03, -0202,251,0,5,2,0,0x4,01,0,21,128,0,01,2,0,16,192,06,0,2,0x1,0,1,04,0, -01,16,0,01,0101,0,024,128,0,15,0x2,0,0x2,162,0,013,02,0,12,0x1,0,0x6, -32,0,0,010,0,0,0x1,64,0,0x6,64,0,0,0x8,32,0,0,32,0,1,128,183,0,013,01 -,0,24,01,0,05,64,0,0,24,0,06,128,0365,8,128,16,0,0,0x2,64,64,0x4,0,0, -0x1,32,0,6,02,32,0,021,32,8,132,0,0x1,32,04,4,0,0,16,0,0x6,128,0354,0 -,01,8,0,01,32,32,0x8,64,128,0,01,0x4,02,0,0x1,32,0x2,64,128,0,16,1,0, -0,04,16,0,1,16,0,0,128,64,0,1,2,0,0x2,02,0,0,128,0351,2,0263,014,0,0, -161,48,192,134,194,0,0,026,138,1,8,065,162,0240,0x14,0x12,192,0,02, -010,64,64,0,04,8,32,32,0,0,0x1,0264,132,0102,0x6,152,012,0,0,0140,2, -36,45,011,133,0240,0,0,024,0,0,16,012,0,0,212,0x2,16,0321,0122,0202, -0101,0,0,64,0x2,184,041,56,012,0x2,128,197,0,0,02,193,128,0,017,0374, -0120,31,232,0x5,0155,0102,0x16,0214,01,0137,197,0243,0,0,132,16,16,18 -,64,0202,0335,18,0,0,16,0,0,0x2,041,0,0x2,128,32,32,0,0,0x2,0,2,2, -0101,0,021,128,0,0,0x8,04,1,0,0,16,0x4,0,0,64,0,0x7,72,0252,0,0x4,02, -0,0x1,2,0,1,16,0x1,0,4,32,0,16,02,1,32,0,1,128,32,0,0,0x2,0202,0,0x3, -32,16,010,04,64,128,0343,136,0,1,32,0,04,64,0,0x2,16,0,026,128,0,13, -0x8,0,1,32,0314,0,01,01,0,023,4,16,0,5,2,8,0,8,32,0,011,04,0,0,128, -0323,64,0,0x4,32,0,012,1,64,0,02,8,0,06,0x4,0,011,16,0,3,0x8,0,2,32,0 -,0,128,0,0,0x2,193,0,8,132,0x4,0,0x6,48,64,0,06,2,0,012,0x6,24,0,011, -64,64,0,0x2,0257,010,128,0,011,0x28,02,0,6,128,4,0,5,64,02,0,04,04, -0x1,0,0,16,0x4,0,0,8,0,02,1,32,0,0,0x4,0,01,0120,64,0,0,010,137,0,0, -32,02,0,5,64,0,27,16,0,017,128,0315,0,7,64,0,2,16,0,0x1,04,0,0x2,1, -0x1,0,3,128,0,6,64,0,02,8,0,0x4,128,0,0,01,0,05,02,0,1,0x4,144,0,0, -0x3,0,0x3,32,0,0x4,0x4,0,013,128,0,6,64,0,16,16,0,0,0x8,0,0x1,0202,0, -0,04,01,0,2,64,0,0x1,01,1,0,06,02,0,14,64,0,0x4,16,0,5,02,64,0,5,128, -0314,0104,0x4,4,0,2,1,0,07,4,0,07,32,0,0x6,16,0,0x5,32,0,0x2,16,0,0x1 -,64,0,0,4,0,0,0x1,0,3,128,168,0x2,0,6,128,0,0,02,0,1,0x1,0,1,128,0, -0x1,16,0,0x6,0x4,0,06,2,128,0,0x2,0x8,0,1,8,0,6,2,0,0x1,64,128,0232,0 -,014,4,0,3,1,0,027,32,0,012,129,0232,24,1,0,0,0x8,0,036,128,16,0,3,32 -,64,0,012,011,224,0262,0,01,32,0,017,16,0,017,4,0,03,0120,0,0,02,0, -012,128,252,0,0x28,32,0,0,4,0,012,128,153,0,0x36,128,0371,0,0,0x1d, -192,02,0124,0,0,011,32,1,0124,128,04,144,0,0,0x12,64,02,72,0,0,015,0, -017,0x58,0,0,011,32,0x1,024,128,02,144,0,0,18,64,5,0x48,128,0x16,0240 -,02,0134,0,0,0313,0240,0x49,144,129,046,0,0,6,192,0,0,0xc8,01,03,0140 -,0,0,014,128,0x1,48,0,0,046,0,017,062,0,0,06,192,0,0,152,0,0,19,96,0, -0,014,128,054,48,0360,176,64,14,193,0x2,0372,0377,0377,}; -__forceinline static unsigned bdVLJ3(volatile unsigned long*RdZoN, -const unsigned char*mmXTK1,unsigned NZbNW4){unsigned X3V8j4,zQ6M_2; -int AhUPU1=01;const unsigned char*WMRMP4=(mmXTK1)+2;int FtQV8=0; -unsigned nL0K52=0;unsigned ZU75i4=(mmXTK1)[0]+((mmXTK1)[0x1]<<8);{if( -!(ZU75i4>=0xFFFF))goto tK6lL1;{ZU75i4=NZbNW4;AhUPU1=0;}goto quUCW1; -tK6lL1:;{if(!(ZU75i4<16||ZU75i4>=65536))goto evfv2;{((RdZoN)[0])= -0xFFFF;((RdZoN)[-1])=0;return 01u;}evfv2:;}quUCW1:;}X3V8j4=0;{Bi1jt2: -((RdZoN)[0])=04;if(X3V8j4++<=0x19)goto Bi1jt2;};{ugSn31:if(!((((RdZoN -)[0])&24)!=0x8))goto Mlzuh1;{{if(!(++X3V8j4>0x3e8+0x19))goto SUmQ44;{ -;((RdZoN)[0])=0xFFFF;((RdZoN)[-1])=0;return 01u;}SUmQ44:;}}goto ugSn31 -;Mlzuh1:;}{YQN8T3:((RdZoN)[0])=04;if(X3V8j4++<=031+0113)goto YQN8T3;} -;{X5pzO3:{{if(!((((RdZoN)[0])&8)==0))goto ZFz0V2;{goto qgDDD2;} -ZFz0V2:;}{if(!(((RdZoN)[0])&16))goto Paba02;{X3V8j4=012;{rAPPY4:{(( -RdZoN)[0])=0x4;((RdZoN)[0])=6;}if(--X3V8j4)goto rAPPY4;};((RdZoN)[0])= -0x4;{if(!((((RdZoN)[0])&24)!=24))goto VfGIc3;{goto qgDDD2;}VfGIc3:;} -;((RdZoN)[0])=0xFFFF;((RdZoN)[-0x1])=224;return 0u;}Paba02:;}{if(!( -AhUPU1))goto wq7DF1;{{if(!(FtQV8>0))goto b5VMc1;--FtQV8;goto VQv4p1; -b5VMc1:;{nL0K52= *WMRMP4++;{if(!(nL0K52==0))goto Jnrtb2;FtQV8= * -WMRMP4++;Jnrtb2:;}}VQv4p1:;}zQ6M_2=nL0K52;}goto IHuhT1;wq7DF1:;zQ6M_2 -= *mmXTK1++;IHuhT1:;}zQ6M_2|=256;{hTX5_:{unsigned BICIc2=(zQ6M_2&0x1)| -04;((RdZoN)[0])=BICIc2;((RdZoN)[0])=BICIc2|2;zQ6M_2>>=1;}if(zQ6M_2!=1 -)goto hTX5_;};}if(--ZU75i4)goto X5pzO3;};qgDDD2:;((RdZoN)[0])=0xFFFF -;((RdZoN)[-01])=0;return 0x1u;}__forceinline static void l4W8X( -volatile unsigned long*RdZoN){((RdZoN)[0])=0xFFFF;((RdZoN)[-01])=(0x1 -<<0)|(01<<01)|(1<<02)|(01<<5);((RdZoN)[0])=4;((RdZoN)[0])=0;((RdZoN)[ -0])=0;}int __attribute__((cdecl))TAU32_Initialize(oSdJm*YRHFy,int -FH0RH2){kWMzp1*J7Iki4;const unsigned char*mmXTK1;unsigned X3V8j4, -DiWl81,bHzh05,fzwRI1;const char*_kIQv4;volatile unsigned long*RdZoN; -unsigned char*sfc355=((unsigned char* )&YRHFy->io7IZ3)+sizeof(YRHFy-> -io7IZ3);unsigned char*Nqom15=(unsigned char* )&YRHFy->QhwfE1;{zWnKf4: -if(!(Nqom15kK4Tl;E2DoN1(J7Iki4,YRHFy->Y3IxL2,0,YRHFy->jDVZJ2,YRHFy -,YRHFy->b_7cQ4);RdZoN=&J7Iki4->fV7o35->UyRVB4;l4W8X(RdZoN);X3V8j4=0;{ -CIeRo2:if(!(((RdZoN)[0])&0x18))goto LBIN_3;{{if(!(++X3V8j4>017))goto -TBUSX1;{((RdZoN)[0])=0xFFFF;((RdZoN)[-1])=0;YRHFy->cJw4g2|=1u;return -0;}TBUSX1:;}}goto CIeRo2;LBIN_3:;}{Br68q1:((RdZoN)[0])=0;if(++X3V8j4< -0x19)goto Br68q1;};DiWl81=((RdZoN)[0])>>(0x5+8);switch(DiWl81){case -0x7:YRHFy->QhwfE1=J7Iki4->SP4ZU=0x1;YRHFy->NNm8q=2;mmXTK1=A7Lph2; -bHzh05=sizeof(A7Lph2);break;case 06:YRHFy->QhwfE1=J7Iki4->SP4ZU=0x2; -YRHFy->NNm8q=0x1;mmXTK1=FZD5Q3;bHzh05=sizeof(FZD5Q3);break;default: -J7Iki4->SP4ZU=0;YRHFy->cJw4g2|=2u;return 0;}{if(!(YRHFy->u6eGG1&& -YRHFy->EFekl2))goto pdiOe2;{mmXTK1=(const unsigned char* )YRHFy-> -u6eGG1;bHzh05=YRHFy->EFekl2;}pdiOe2:;}YRHFy->cJw4g2|=bdVLJ3(RdZoN, -mmXTK1,bHzh05);{if(!(YRHFy->cJw4g2))goto Yx04h1;return 0;Yx04h1:;}(( -RdZoN)[-01])=255;X3V8j4=0xFF;{pNJdS:if(!(0x1))goto hGKYx1;{unsigned -_G6sW2,aeA8v;((RdZoN)[0])=X3V8j4|32;_G6sW2=((RdZoN)[0])>>0x8;aeA8v=( -X3V8j4&~32)|((~X3V8j4&16)<<01);{if(!(_G6sW2!=aeA8v))goto v7KXO;{ -YRHFy->RMAeN|=_G6sW2^aeA8v;YRHFy->cJw4g2|=16u;}v7KXO:;}{if(!(X3V8j4== -0))goto bt72f2;goto hGKYx1;bt72f2:;}X3V8j4--;}goto pNJdS;hGKYx1:;}(( -RdZoN)[0])=0xFFFF;((RdZoN)[-01])=224;AUUSL3(RdZoN,0,64);AUUSL3(RdZoN, -0,0);{if(!(YRHFy->cJw4g2&&!FH0RH2))goto s4jFx3;return 0;s4jFx3:;} -J7Iki4->YRHFy->U6oXn4=RtiEy4(RdZoN,0)&(16|32);B1Wc_1(J7Iki4);B1Wc_1( -J7Iki4);IoSy32(J7Iki4,24,01);{X3V8j4=0;tW1NE2:if(!(X3V8j4<64))goto -VKkfq2;goto GlauV4;grRT_1:X3V8j4++;goto tW1NE2;GlauV4:{unsigned long -TVLzg4,uSi9a4,WcLvp4;unsigned char LFcjb,O0urm2=(unsigned char)((01u -<<(X3V8j4&0x7))+X3V8j4/16);{if(!(X3V8j4&0x8))goto S62iO;O0urm2=~ -O0urm2;S62iO:;}BucKo(RdZoN,0x2a,O0urm2);{if(!(J7Iki4->SP4ZU!=02))goto -crTL73;s3sCI1(RdZoN,0x2a,(unsigned char)~O0urm2);crTL73:;}TVLzg4=1u<< -(X3V8j4&0x1f);{if(!(X3V8j4&32))goto A3cBz3;TVLzg4=~TVLzg4;A3cBz3:;} -uSi9a4=(TVLzg4<<0x3)|(TVLzg4>>035);HcALQ1(RdZoN,042,TVLzg4);HcALQ1( -RdZoN,0x2b,uSi9a4);{if(!(J7Iki4->SP4ZU!=2))goto oz88v2;{Rqv1w3(RdZoN, -042,~TVLzg4);Rqv1w3(RdZoN,43,~uSi9a4);}oz88v2:;}LFcjb=(unsigned char)SlE234 -(RdZoN,0x2a);{if(!(LFcjb!=O0urm2))goto EllbX3;{YRHFy->RMAeN|=(LFcjb^ -O0urm2)<<16;YRHFy->cJw4g2|=16u;}EllbX3:;}{if(!(J7Iki4->SP4ZU!=02))goto -jVIjf1;{LFcjb=(unsigned char)~fFvjz3(RdZoN,0x2a);{if(!(LFcjb!=O0urm2))goto -vB_J54;{YRHFy->RMAeN|=(LFcjb^O0urm2)<<24;YRHFy->cJw4g2|=16u;}vB_J54: -;}}jVIjf1:;}WcLvp4=BLq4p(RdZoN,042);{if(!(WcLvp4!=TVLzg4))goto NWPaL3 -;{YRHFy->cJw4g2|=16u;}NWPaL3:;}WcLvp4=BLq4p(RdZoN,053);{if(!(WcLvp4 -!=uSi9a4))goto JPbjb2;{YRHFy->cJw4g2|=16u;}JPbjb2:;}{if(!(J7Iki4-> -SP4ZU!=2))goto ytDo8;{WcLvp4=~sl0aO1(RdZoN,34);{if(!(WcLvp4!=TVLzg4))goto -gELJO;{YRHFy->cJw4g2|=16u;}gELJO:;}WcLvp4=~sl0aO1(RdZoN,0x2b);{if(!( -WcLvp4!=uSi9a4))goto sfDyk;{YRHFy->cJw4g2|=16u;}sfDyk:;}}ytDo8:;}} -goto grRT_1;VKkfq2:;}{if(!(YRHFy->cJw4g2&&!FH0RH2))goto k8lwU3;return -0;k8lwU3:;};fzwRI1=SlE234(RdZoN,15);_kIQv4=0;switch(fzwRI1>>0x4){case -0:_kIQv4="DS2152";break;case 0x1:_kIQv4="DS21352";break;case 02: -_kIQv4="DS21552";break;case 8:_kIQv4="DS2154";break;case 011:_kIQv4= -"DS21354";break;case 0xA:_kIQv4="DS21554";break;default:;YRHFy-> -cJw4g2|=4u;{if(!(!FH0RH2))goto hd8Id2;return 0;hd8Id2:;}}{if(!(J7Iki4 -->SP4ZU!=0x2&&fFvjz3(RdZoN,017)!=fzwRI1))goto rJ8cZ2;{YRHFy->cJw4g2|= -8u;{if(!(!FH0RH2))goto xmEVZ;return 0;xmEVZ:;}}rJ8cZ2:;};{X3V8j4=0; -h43i53:if(!(X3V8j4<4u))goto pAOwi3;goto wZuv21;Yd9y34:X3V8j4++;goto -h43i53;wZuv21:{J7Iki4->hRUi43[0][X3V8j4]=&J7Iki4->oXafA1[0].KqthD[ -X3V8j4];J7Iki4->hRUi43[0][X3V8j4]->PnawH=&YRHFy->io7IZ3[0].yTR5N3[ -X3V8j4];J7Iki4->hRUi43[0x1][X3V8j4]=&J7Iki4->oXafA1[1].KqthD[X3V8j4]; -J7Iki4->hRUi43[01][X3V8j4]->PnawH=&YRHFy->io7IZ3[1].yTR5N3[X3V8j4];} -goto Yd9y34;pAOwi3:;}switch(cWGy25(J7Iki4)){case tXFTB4:break;case -Wa6IF1:YRHFy->cJw4g2|=128u;break;case wTSMD1:case cy2jE4:default: -YRHFy->cJw4g2|=32u;break;}{if(!(YRHFy->cJw4g2&&!FH0RH2))goto hHBeJ3; -return 0;hHBeJ3:;}AUUSL3(RdZoN,010,0);{if(!(RtiEy4(RdZoN,0)&128))goto -bYp915;{YRHFy->cJw4g2|=256u;{if(!(!FH0RH2))goto y4Rn32;return 0; -y4Rn32:;}}bYp915:;}J7Iki4->veMrO=J7Iki4->P9UkM1[0];J7Iki4->bNfmc1= -J7Iki4->P9UkM1[01];cSW2U1(J7Iki4,RdZoN);IoSy32(J7Iki4,0x1a,4);{if(!(( -YRHFy->cJw4g2&128u)==0))goto wcVWB2;WdqxE(J7Iki4,(unsigned)(0.010/( -1.0/8000.0)+1.5));wcVWB2:;}B1Wc_1(J7Iki4);J7Iki4->v6D2d3[0].x2RgK4= -J7Iki4->v6D2d3[1].x2RgK4=0x1;J7Iki4->v6D2d3[0].PBtXm1=0;IoSy32(J7Iki4 -,18,J7Iki4->v6D2d3[1].PBtXm1=J7Iki4->v6D2d3[0].PBtXm1);J7Iki4->v6D2d3 -[0].AuCs73=32|2;IoSy32(J7Iki4,16,J7Iki4->v6D2d3[0x1].AuCs73=J7Iki4-> -v6D2d3[0].AuCs73);IoSy32(J7Iki4,021,4|(01?0x2:0));IoSy32(J7Iki4,27,01 -|0x2|(0?128:0));AErNL3(J7Iki4);{if(!(J7Iki4->SP4ZU!=0x2))goto Y44wG4; -tsz3n4(J7Iki4);Y44wG4:;}IoSy32(J7Iki4,0xaa,128);AUUSL3(RdZoN,0,J7Iki4 -->GEt0d=0x1);{if(!((YRHFy->cJw4g2&128u)==0))goto zeUwl;WdqxE(J7Iki4, -0x8);zeUwl:;}switch(Plb1C3(J7Iki4)){case tXFTB4:break;case Wa6IF1: -YRHFy->cJw4g2|=128u;break;case wTSMD1:case cy2jE4:default:YRHFy-> -cJw4g2|=32u;break;}{if(!(YRHFy->cJw4g2&&!FH0RH2))goto JGDcD1;return 0 -;JGDcD1:;}{if(!(fzwRI1>=0xA0&&fzwRI1<04))goto Gk2f03;{IoSy32(J7Iki4, -0xAC,0x1);{if(!((YRHFy->cJw4g2&128u)==0))goto BzLYt2;WdqxE(J7Iki4,0x1 -);BzLYt2:;}IoSy32(J7Iki4,0xAC,0);}Gk2f03:;}IoSy32(J7Iki4,0x1d,2|0x1); -{X3V8j4=0;d6hFe1:if(!(1))goto gss4O;goto yN8TN3;ylXZ7:X3V8j4++;goto -d6hFe1;yN8TN3:{unsigned long GVZnd,avVsj3,NcXyY1;GVZnd=xjK0y2(RdZoN); -{if(!((YRHFy->cJw4g2&128u)==0))goto vbEl_1;WdqxE(J7Iki4,010);vbEl_1:; -}avVsj3=xjK0y2(RdZoN);NcXyY1=avVsj3-GVZnd;{if(!((NcXyY1<256*010|| -NcXyY1>256*0143)&&X3V8j4>5))goto XaFHr2;{YRHFy->cJw4g2|=128u;{if(!(! -FH0RH2))goto lA6gX;return 0;lA6gX:;}}goto D8mfM4;XaFHr2:;goto gss4O; -D8mfM4:;}}goto ylXZ7;gss4O:;}{if(!(!(RtiEy4(RdZoN,0)&128)||(RtiEy4( -RdZoN,0)&128)))goto ryAiU4;{YRHFy->cJw4g2|=256u;{if(!(!FH0RH2))goto -Tm92i3;return 0;Tm92i3:;}}ryAiU4:;}{LmtWY4:{__asm __volatile(""::); -__asm __volatile("lock; addl $0,(%%esp)": : :"cc");__asm __volatile( -""::);}if(0)goto LmtWY4;};J7Iki4->fV7o35->PGh3e4=0xC000101Ful;{yqPKN3 -:{__asm __volatile(""::);__asm __volatile("lock; addl $0,(%%esp)": : : -"cc");__asm __volatile(""::);}if(0)goto yqPKN3;};J7Iki4->fV7o35-> -Be1a54=~0u;{dDi0r1:{__asm __volatile(""::);__asm __volatile( -"lock; addl $0,(%%esp)": : :"cc");__asm __volatile(""::);}if(0)goto -dDi0r1;};J7Iki4->fV7o35->PGh3e4=0xC060101Ful;{vO7V_1:{__asm __volatile -(""::);__asm __volatile("lock; addl $0,(%%esp)": : :"cc");__asm -__volatile(""::);}if(0)goto vO7V_1;};cSW2U1(J7Iki4,RdZoN);IoSy32( -J7Iki4,0xaa,0);IoSy32(J7Iki4,29,0);{if(!((YRHFy->cJw4g2&128u)==0))goto -nBKvy;WdqxE(J7Iki4,01);nBKvy:;}{if(!(J7Iki4->fV7o35->euuEB1!=02||( -J7Iki4->fV7o35->Be1a54&lPIbL4)==0))goto azjrO2;{{if(!(!(RtiEy4(RdZoN, -0)&128)||(RtiEy4(RdZoN,0)&128)))goto oFPii4;{YRHFy->cJw4g2|=256u;} -goto W6LzR;oFPii4:;YRHFy->cJw4g2|=512u;W6LzR:;}{if(!(!FH0RH2))goto -CjeSb;return 0;CjeSb:;}}azjrO2:;}{if(!(qWaP5(J7Iki4)<=0))goto Ru_0e3; -{YRHFy->cJw4g2|=512u;{if(!(!FH0RH2))goto ytc6A4;return 0;ytc6A4:;}} -Ru_0e3:;}J7Iki4->fV7o35->Be1a54=lPIbL4;{if(!(J7Iki4->fV7o35->euuEB1|| -(J7Iki4->fV7o35->Be1a54&lPIbL4)))goto WKD831;{{if(!(RtiEy4(RdZoN,0)& -128))goto dv8Wi2;{YRHFy->cJw4g2|=256u;}goto VwVLP1;dv8Wi2:;YRHFy-> -cJw4g2|=512u;VwVLP1:;}{if(!(!FH0RH2))goto eFLFn1;return 0;eFLFn1:;}} -WKD831:;}LzuvP2(RdZoN,1073741824ul);J7Iki4->fV7o35->Be1a54=~0u;J7Iki4 -->h2LrH3=01;GLE_s4(J7Iki4,(-0x1));return 01;}void __attribute__(( -cdecl))TAU32_DestructiveHalt(kWMzp1*J7Iki4,int mdbib4){volatile -unsigned long*RdZoN;CLbj94(J7Iki4);wP7Tk3(&J7Iki4->h2LrH3);J7Iki4-> -fV7o35->PGh3e4=0;RdZoN=&J7Iki4->fV7o35->UyRVB4;IoSy32(J7Iki4,0x16,0); -IoSy32(J7Iki4,027,0);J7Iki4->uyKJn2=blWHd2;J7Iki4->fV7o35->Be1a54=( -gQf6j1|Sptqu|r3CcP2);{J_oOV2:{__asm __volatile(""::);__asm __volatile -("lock; addl $0,(%%esp)": : :"cc");__asm __volatile(""::);}if(0)goto -J_oOV2;};IoSy32(J7Iki4,18,16);WdqxE(J7Iki4,16);IoSy32(J7Iki4,0x18,0x1 -);WdqxE(J7Iki4,16);B1Wc_1(J7Iki4);AUUSL3(RdZoN,0,0);l4W8X(RdZoN);(( -RdZoN)[-01])=0;J7Iki4->YRHFy->QhwfE1=0;J7Iki4->YRHFy->NNm8q=0;c0gFy1( -J7Iki4,mdbib4);}struct jW2b04{unsigned short IwIR9,WEcpA3,fAT5_2, -Iyzzx;unsigned XKo0B1[0x4];unsigned mvyZB4,Ujlt43,QmT832;unsigned -xQlGU2;const char*l6YAz4;const char*aGnwo2;};extern const char rlD8Z2 -[];extern const struct jW2b04 qi3Gb3;const char rlD8Z2[]="\r\n" "\r\n" -"extern \"C\" __declspec(dllexport) const struct tag__LY_BuildVersionInfo\r\n" -"{\r\n" -" unsigned __int16 MajorVersion, MinorVersion, Revision, BuildSerial;\r\n" -" unsigned __int32 SourcesDigest128[4];\r\n" -" unsigned __int32 SourcesSize, SourcesFiles, SourcesLines;\r\n" -" unsigned __int32 TimestampUTC;\r\n" -" const char *TimestampText = __TIMESTAMP__;\r\n" -" const char *SelfFormatCPP = \"This text\";\r\n" -"} __LY_BuildVersionInfo;\r\n" "\r\n" "\r\n";const struct jW2b04 -qi3Gb3={0x1,0,0,0176,{01537105567ul,023527046414ul,023424742401ul, -021015742140ul},626468ul,021ul,034064ul,010274156626ul, -"Wed Aug 03 19:07:02 2005",rlD8Z2};unsigned const -TAU32_ControllerObjectSize=sizeof(kWMzp1); diff --git a/sys/dev/ce/tau32-ddk.h b/sys/dev/ce/tau32-ddk.h deleted file mode 100644 index 5dbd5a557801..000000000000 --- a/sys/dev/ce/tau32-ddk.h +++ /dev/null @@ -1,516 +0,0 @@ -/* - * DDK (Driver Development Kit) for Cronyx Tau32-PCI adapter. - * - * Copyright (C) 2003-2006 Cronyx Engineering, http://www.cronyx.ru - * All rights reserved. - * - * Author: Leo Yuriev , http://leo.yuriev.ru - * - * $Cronyx: tau32-ddk.h,v 1.2 2006/02/01 09:14:40 ly Exp $ - * $Rik: tau32-ddk.h,v 1.7 2006/02/28 22:33:29 rik Exp $ - * $FreeBSD$ - */ - -#if defined(__GNUC__) || defined(__TURBOC__) -# ifndef __int8 -# define __int8 char -# endif -# ifndef __int16 -# define __int16 short -# endif -# ifndef __int32 -# define __int32 long -# endif -# ifndef __int64 -# define __int64 long long -# endif -#endif - -#if !defined(BOOLEAN) && !defined(_NTDDK_) -# define BOOLEAN int -#endif - -#if defined(__GNUC__) && !defined(__stdcall) -# define __stdcall __attribute__((stdcall)) -#endif - -#if defined(__GNUC__) && !defined(__cdecl) -# define __cdecl __attribute__((cdecl)) -#endif - -#ifndef TAU32_CALLBACK_TYPE -# if defined(__WINDOWS__) || defined(_MSC_VER) || defined(WIN32) || defined(WIN64) -# define TAU32_CALLBACK_TYPE __stdcall -# else -# define TAU32_CALLBACK_TYPE __cdecl -# endif -#endif - -#ifndef TAU32_CALL_TYPE -# if defined(__WINDOWS__) || defined(_MSC_VER) || defined(WIN32) || defined(WIN64) -# define TAU32_CALL_TYPE __stdcall -# else -# define TAU32_CALL_TYPE __cdecl -# endif -#endif - -#ifndef PCI_PHYSICAL_ADDRESS -# ifdef PCI64 -# error PCI64 currently is not supported -# else -# define PCI_PHYSICAL_ADDRESS unsigned __int32 -# endif -#endif - -#define TAU32_PCI_VENDOR_ID 0x110A -#define TAU32_PCI_DEVICE_ID 0x2101 -#define TAU32_PCI_IO_BAR1_SIZE 0x0100 -#define TAU32_PCI_RESET_ADDRESS 0x004C -#define TAU32_PCI_RESET_ON 0xF00F0000ul /*0xFFFFFFFFul */ -#define TAU32_PCI_RESET_OFF 0 -#define TAU32_PCI_RESET_LENGTH 4 - -/* TAU32_MODELS */ -#define TAU32_ERROR (-1) -#define TAU32_UNKNOWN 0 -#define TAU32_BASE 1 -#define TAU32_LITE 2 -#define TAU32_ADPCM 3 - -/* TAU32_INIT_ERRORS */ -#define TAU32_IE_OK 0x0000u -#define TAU32_IE_FIRMWARE 0x0001u -#define TAU32_IE_MODEL 0x0002u -#define TAU32_IE_E1_A 0x0004u -#define TAU32_IE_E1_B 0x0008u -#define TAU32_IE_INTERNAL_BUS 0x0010u -#define TAU32_IE_HDLC 0x0020u -#define TAU32_IE_ADPCM 0x0040u -#define TAU32_IE_CLOCK 0x0080u -#define TAU32_IE_DXC 0x0100u -#define TAU32_IE_XIRQ 0x0200u - -/* TAU32_INTERFACES */ -#define TAU32_E1_ALL (-1) -#define TAU32_E1_A 0 -#define TAU32_E1_B 1 - -/* TAU32_LIMITS */ -#define TAU32_CHANNELS 32 -#define TAU32_TIMESLOTS 32 -#define TAU32_MAX_INTERFACES 2 -#define TAU32_MTU 8184 -#define TAU32_FLAT_MTU 4096 -#define TAU32_IO_QUEUE 4 -#define TAU32_IO_QUEUE_BYTES 128 -#define TAU32_MAX_REQUESTS 512 -#define TAU32_MAX_BUFFERS 256 -#define TAU32_FIFO_SIZE 256 - -/* TAU32_REQUEST_COMMANDS */ -#define TAU32_Tx_Start 0x0001u -#define TAU32_Tx_Stop 0x0002u -/*#define TAU32_Tx_Flush 0x0004u // yet not implemented */ -#define TAU32_Tx_Data 0x0008u -#define TAU32_Rx_Start 0x0010u -#define TAU32_Rx_Stop 0x0020u -#define TAU32_Rx_Data 0x0080u -#define TAU32_Configure_Channel 0x0100u -#define TAU32_Timeslots_Complete 0x0200u -#define TAU32_Timeslots_Map 0x0400u -#define TAU32_Timeslots_Channel 0x0800u -#define TAU32_ConfigureDigitalLoop 0x1000u -#define TAU32_Configure_Commit 0x2000u -#define TAU32_Tx_FrameEnd 0x4000u -#define TAU32_Tx_NoCrc 0x8000u -#define TAU32_Configure_E1 0x0040u - -/* TAU32_ERRORS */ -#define TAU32_NOERROR 0x000000ul -#define TAU32_SUCCESSFUL 0x000000ul -#define TAU32_ERROR_ALLOCATION 0x000001ul /* not enough tx/rx descriptors */ -#define TAU32_ERROR_BUS 0x000002ul /* PEB could not access to host memory by PCI bus for load/store information */ -#define TAU32_ERROR_FAIL 0x000004ul /* PEB action request failed */ -#define TAU32_ERROR_TIMEOUT 0x000008ul /* PEB action request timeout */ -#define TAU32_ERROR_CANCELLED 0x000010ul -#define TAU32_ERROR_TX_UNDERFLOW 0x000020ul /* transmission underflow */ -#define TAU32_ERROR_TX_PROTOCOL 0x000040ul /* reserved */ -#define TAU32_ERROR_RX_OVERFLOW 0x000080ul -#define TAU32_ERROR_RX_ABORT 0x000100ul -#define TAU32_ERROR_RX_CRC 0x000200ul -#define TAU32_ERROR_RX_SHORT 0x000400ul -#define TAU32_ERROR_RX_SYNC 0x000800ul -#define TAU32_ERROR_RX_FRAME 0x001000ul -#define TAU32_ERROR_RX_LONG 0x002000ul -#define TAU32_ERROR_RX_SPLIT 0x004000ul /* frame has splitted between two requests due rx-gap allocation */ -#define TAU32_ERROR_RX_UNFIT 0x008000ul /* frame can't be fit into request buffer */ -#define TAU32_ERROR_TSP 0x010000ul -#define TAU32_ERROR_RSP 0x020000ul -#define TAU32_ERROR_INT_OVER_TX 0x040000ul -#define TAU32_ERROR_INT_OVER_RX 0x080000ul -#define TAU32_ERROR_INT_STORM 0x100000ul -#define TAU32_ERROR_INT_E1LOST 0x200000ul -#define TAU32_WARN_TX_JUMP 0x400000ul -#define TAU32_WARN_RX_JUMP 0x800000ul - -/* TAU32_CHANNEL_MODES */ -#define TAU32_HDLC 0 -#define TAU32_V110_x30 1 -#define TAU32_TMA 2 -#define TAU32_TMB 3 -#define TAU32_TMR 4 - -/* TAU32_SYNC_MODES */ -#define TAU32_SYNC_INTERNAL 0 -#define TAU32_SYNC_RCV_A 1 -#define TAU32_SYNC_RCV_B 2 -#define TAU32_SYNC_LYGEN 3 -#define TAU32_LYGEN_RESET 0 - -/* TAU32_CHANNEL_CONFIG_BITS */ -#define TAU32_channel_mode_mask 0x0000000Ful -#define TAU32_data_inversion 0x00000010ul -#define TAU32_fr_rx_splitcheck 0x00000020ul -#define TAU32_fr_rx_fitcheck 0x00000040ul -#define TAU32_fr_tx_auto 0x00000080ul -#define TAU32_hdlc_crc32 0x00000100ul -#define TAU32_hdlc_adjustment 0x00000200ul -#define TAU32_hdlc_interframe_fill 0x00000400ul -#define TAU32_hdlc_nocrc 0x00000800ul -#define TAU32_tma_flag_filtering 0x00001000ul -#define TAU32_tma_nopack 0x00002000ul -#define TAU32_tma_flags_mask 0x00FF0000ul -#define TAU32_tma_flags_shift 16u -#define TAU32_v110_x30_tr_mask 0x03000000ul -#define TAU32_v110_x30_tr_shift 24u - -typedef struct tag_TAU32_TimeslotAssignment -{ - unsigned __int8 TxChannel, RxChannel; - unsigned __int8 TxFillmask, RxFillmask; -} TAU32_TimeslotAssignment; - -#define TAU32_CROSS_WIDTH 96 -#define TAU32_CROSS_OFF 127 -typedef unsigned __int8 TAU32_CrossMatrix[TAU32_CROSS_WIDTH]; - -/* TAU32_INTERFACE_CONFIG_BITS */ -#define TAU32_LineOff (0ul << 0) -#define TAU32_LineLoopInt (1ul << 0) -#define TAU32_LineLoopExt (2ul << 0) -#define TAU32_LineNormal (3ul << 0) -#define TAU32_LineAIS (4ul << 0) -#define TAU32_line_mode_mask 0x0000000Ful -#define TAU32_unframed_64 (0ul << 4) -#define TAU32_unframed_128 (1ul << 4) -#define TAU32_unframed_256 (2ul << 4) -#define TAU32_unframed_512 (3ul << 4) -#define TAU32_unframed_1024 (4ul << 4) -#define TAU32_unframed_2048 (5ul << 4) -#define TAU32_unframed TAU32_unframed_2048 -#define TAU32_framed_no_cas (6ul << 4) -#define TAU32_framed_cas_set (7ul << 4) -#define TAU32_framed_cas_pass (8ul << 4) -#define TAU32_framed_cas_cross (9ul << 4) -#define TAU32_framing_mode_mask 0x000000F0ul -#define TAU32_monitor 0x00000100ul -#define TAU32_higain 0x00000200ul -#define TAU32_sa_bypass 0x00000400ul -#define TAU32_si_bypass 0x00000800ul -#define TAU32_cas_fe 0x00001000ul -#define TAU32_ais_on_loss 0x00002000ul -#define TAU32_cas_all_ones 0x00004000ul -#define TAU32_cas_io 0x00008000ul -#define TAU32_fas_io 0x00010000ul -#define TAU32_fas8_io 0x00020000ul -#define TAU32_auto_ais 0x00040000ul -#define TAU32_not_auto_ra 0x00080000ul -#define TAU32_not_auto_dmra 0x00100000ul -#define TAU32_ra 0x00200000ul -#define TAU32_dmra 0x00400000ul -#define TAU32_scrambler 0x00800000ul -#define TAU32_tx_ami 0x01000000ul -#define TAU32_rx_ami 0x02000000ul -#define TAU32_ja_tx 0x04000000ul -#define TAU32_crc4_mf_tx 0x08000000ul -#define TAU32_crc4_mf_rx 0x10000000ul -#define TAU32_crc4_mf (TAU32_crc4_mf_rx | TAU32_crc4_mf_tx) - -/* TAU32_SA_CROSS_VALUES */ -#define TAU32_SaDisable 0u -#define TAU32_SaSystem 1u -#define TAU32_SaIntA 2u -#define TAU32_SaIntB 3u -#define TAU32_SaAllZeros 4u - -typedef struct tag_TAU32_SaCross -{ - unsigned __int8 InterfaceA, InterfaceB; - unsigned __int8 SystemEnableTs0; -} TAU32_SaCross; - -/* TAU32_INTERFACE_STATUS_BITS */ -#define TAU32_RCL 0x0001u /* receive carrier lost */ -#define TAU32_RLOS 0x0002u /* receive sync lost */ -#define TAU32_RUA1 0x0004u /* received unframed all ones */ -#define TAU32_RRA 0x0008u /* receive remote alarm */ -#define TAU32_RSA1 0x0010u /* receive signaling all ones */ -#define TAU32_RSA0 0x0020u /* receive signaling all zeros */ -#define TAU32_RDMA 0x0040u /* receive distant multiframe alarm */ -#define TAU32_LOTC 0x0080u /* transmit clock lost */ -#define TAU32_RSLIP 0x0100u /* receiver slip event */ -#define TAU32_TSLIP 0x0200u /* transmitter slip event */ -#define TAU32_RFAS 0x0400u /* receiver lost and searching for FAS */ -#define TAU32_RCRC4 0x0800u /* receiver lost and searching for CRC4 MF */ -#define TAU32_RCAS 0x1000u /* received lost and searching for CAS MF */ -#define TAU32_JITTER 0x2000u /* jitter attenuator limit */ -#define TAU32_RCRC4LONG 0x4000u /* G.706 400ms limit of searching for CRC4 */ -#define TAU32_E1OFF 0x8000u /* E1 line power-off */ -#define TAU32_LOS TAU32_RLOS -#define TAU32_AIS TAU32_RUA1 -#define TAU32_LOF TAU32_RFAS -#define TAU32_AIS16 TAU32_RSA1 -#define TAU32_LOFM TAU32_RCAS -#define TAU32_FLOFM TAU32_RDMA - -/* TAU32_STATUS */ -#define TAU32_FRLOFM 0x0001u /* CAS framer searching for CAS MF */ -#define TAU32_CMWAITING 0x0002u /* Connection memory swap waiting */ -#define TAU32_CMPENDING 0x0004u /* Connection memory swap pending */ -#define TAU32_LED 0x0008u /* Led status (on/off) */ - -typedef struct tag_TAU32_Controller TAU32_Controller; -typedef struct tag_TAU32_UserRequest TAU32_UserRequest; -typedef struct tag_TAU32_UserContext TAU32_UserContext; -typedef union tag_TAU32_tsc TAU32_tsc; -typedef struct tag_TAU32_FlatIoContext TAU32_FlatIoContext; -typedef void(TAU32_CALLBACK_TYPE *TAU32_RequestCallback)(TAU32_UserContext *pContext, TAU32_UserRequest *pUserRequest); -typedef void(TAU32_CALLBACK_TYPE *TAU32_NotifyCallback)(TAU32_UserContext *pContext, int Item, unsigned NotifyBits); -typedef void(TAU32_CALLBACK_TYPE *TAU32_FifoTrigger)(TAU32_UserContext *pContext, int Interface, unsigned FifoId, unsigned Level); -typedef void(TAU32_CALLBACK_TYPE *TAU32_FlatIoCallback)(TAU32_UserContext *pContext, TAU32_FlatIoContext *pFlatIoContext); - -union tag_TAU32_tsc -{ - unsigned __int32 osc, sync; -}; - -struct tag_TAU32_FlatIoContext -{ - void *pInternal; - PCI_PHYSICAL_ADDRESS PhysicalBufferAddress; - unsigned Channel, ItemsCount, EachItemBufferSize; - unsigned Received, ActualOffset, Errors; -#if defined(_NTDDK_) - KDPC CallbackDpc; - void SetupCallback(PKDEFERRED_ROUTINE DeferredCallbackRoutine, void* pContext) - { - CallbackDpc.DeferredRoutine = DeferredCallbackRoutine; - CallbackDpc.DeferredContext = pContext; - } - void SetupCallback(TAU32_FlatIoCallback pCallback) - { - CallbackDpc.DeferredRoutine = (PKDEFERRED_ROUTINE) pCallback; - CallbackDpc.DeferredContext = 0; - } -#else - TAU32_FlatIoCallback pCallback; -#endif -}; - -/* TAU32_FIFO_ID */ -#define TAU32_FifoId_CasRx 0u -#define TAU32_FifoId_CasTx 1u -#define TAU32_FifoId_FasRx 2u -#define TAU32_FifoId_FasTx 3u -#define TAU32_FifoId_Max 4u - -typedef struct tag_TAU32_E1_State -{ - unsigned __int32 TickCounter; - unsigned __int32 RxViolations; - unsigned __int32 Crc4Errors; - unsigned __int32 FarEndBlockErrors; - unsigned __int32 FasErrors; - unsigned __int32 TransmitSlips; - unsigned __int32 ReceiveSlips; - unsigned __int32 Status; - unsigned __int32 FifoSlip[TAU32_FifoId_Max]; -} TAU32_E1_State; - -struct tag_TAU32_UserContext -{ - /* fields provided by user for TAU32_Initiaize() */ - TAU32_Controller *pControllerObject; - PCI_PHYSICAL_ADDRESS ControllerObjectPhysicalAddress; - void *PciBar1VirtualAddress; - TAU32_NotifyCallback pErrorNotifyCallback; - TAU32_NotifyCallback pStatusNotifyCallback; -#if defined(_NTDDK_) - PKINTERRUPT InterruptObject; -#endif - /* TODO: remove from release */ - #define TAU32_CUSTOM_FIRMWARE - #ifdef TAU32_CUSTOM_FIRMWARE - void *pCustomFirmware; - unsigned CustomFirmwareSize; - #endif - /* fields filled by TAU32_Initiaize() */ - int Model; - int Interfaces; - unsigned InitErrors; - unsigned __int32 DeadBits; - - /* fields managed by DDK */ - unsigned AdapterStatus; - unsigned CasIoLofCount; - unsigned E1IntLostCount; - unsigned CableTypeJumpers; - TAU32_E1_State InterfacesInfo[TAU32_MAX_INTERFACES]; - - /* fields which are't used by DDK, but nice for user */ -#ifdef TAU32_UserContext_Add - TAU32_UserContext_Add -#endif -}; - -struct tag_TAU32_UserRequest -{ - /* required fields */ - void *pInternal; /* internal */ - unsigned Command; /* in */ -#if defined(_NTDDK_) - KDPC CallbackDpc; - void SetupCallback(PKDEFERRED_ROUTINE DeferredCallbackRoutine, void* pContext) - { - CallbackDpc.DeferredRoutine = DeferredCallbackRoutine; - CallbackDpc.DeferredContext = pContext; - } - void SetupCallback(TAU32_RequestCallback pCallback) - { - CallbackDpc.DeferredRoutine = (PKDEFERRED_ROUTINE) pCallback; - CallbackDpc.DeferredContext = 0; - } -#else - TAU32_RequestCallback pCallback; /* in */ -#endif - unsigned __int32 ErrorCode; /* out */ - - union - { - unsigned ChannelNumber; /* just common field */ - - struct - { - unsigned Channel; /* in */ - unsigned __int32 Config; /* in */ - unsigned __int32 AssignedTsMask; /* build channel from timeslots which is selected by mask */ - } ChannelConfig; - - struct - { - int Interface; - unsigned __int32 Config; /* in */ - unsigned __int32 UnframedTsMask; - } InterfaceConfig; - - struct - { - unsigned Channel; /* in */ - PCI_PHYSICAL_ADDRESS PhysicalDataAddress; /* in */ - unsigned DataLength; /* in */ - unsigned Transmitted; /* out */ - } Tx; - - struct - { - unsigned Channel; /* in */ - PCI_PHYSICAL_ADDRESS PhysicalDataAddress; /* in */ - unsigned BufferLength; /* in */ - unsigned Received; /* out */ - BOOLEAN FrameEnd; /* out */ - } Rx; - - BOOLEAN DigitalLoop; /* in, loop by PEB */ - - union - { - TAU32_TimeslotAssignment Complete[TAU32_TIMESLOTS]; - unsigned __int32 Map[TAU32_CHANNELS]; - } TimeslotsAssignment; - } Io; - - /* fields which are't used by DDK, but nice for user */ -#ifdef TAU32_UserRequest_Add - TAU32_UserRequest_Add -#endif -}; - -#define TAU32_IS_REQUEST_RUNNING(pUserRequest) ((pUserRequest)->pInternal != NULL) -#define TAU32_IS_REQUEST_NOT_RUNNING(pUserRequest) ((pUserRequest)->pInternal == NULL) - -#ifndef TAU32_DDK_DLL -# if defined(_NTDDK_) -# ifdef TAU32_DDK_IMP -# define TAU32_DDK_DLL __declspec(dllexport) -# else -# define TAU32_DDK_DLL __declspec(dllimport) -# endif -# else -# define TAU32_DDK_DLL -# endif -#endif - -#ifdef __cplusplus -extern "C" -{ -#endif - void TAU32_DDK_DLL TAU32_CALL_TYPE TAU32_BeforeReset(TAU32_UserContext *pUserContext); - BOOLEAN TAU32_DDK_DLL TAU32_CALL_TYPE TAU32_Initialize(TAU32_UserContext *pUserContext, BOOLEAN CronyxDiag); - void TAU32_DDK_DLL TAU32_CALL_TYPE TAU32_DestructiveHalt(TAU32_Controller *pControllerObject, BOOLEAN CancelRequests); - BOOLEAN TAU32_DDK_DLL TAU32_CALL_TYPE TAU32_IsInterruptPending(TAU32_Controller *pControllerObject); - BOOLEAN TAU32_DDK_DLL TAU32_CALL_TYPE TAU32_HandleInterrupt(TAU32_Controller *pControllerObject); - extern unsigned const TAU32_ControllerObjectSize; - - /* LY: все функции ниже, могут реентерабельно вызываться из callback-ов */ - void TAU32_DDK_DLL TAU32_CALL_TYPE TAU32_EnableInterrupts(TAU32_Controller *pControllerObject); - void TAU32_DDK_DLL TAU32_CALL_TYPE TAU32_DisableInterrupts(TAU32_Controller *pControllerObject); - BOOLEAN TAU32_DDK_DLL TAU32_CALL_TYPE TAU32_SubmitRequest(TAU32_Controller *pControllerObject, TAU32_UserRequest *pRequest); - BOOLEAN TAU32_DDK_DLL TAU32_CALL_TYPE TAU32_CancelRequest(TAU32_Controller *pControllerObject, TAU32_UserRequest *pRequest, BOOLEAN BreakIfRunning); - void TAU32_DDK_DLL TAU32_CALL_TYPE TAU32_LedBlink(TAU32_Controller *pControllerObject); - void TAU32_DDK_DLL TAU32_CALL_TYPE TAU32_LedSet(TAU32_Controller *pControllerObject, BOOLEAN On); - BOOLEAN TAU32_DDK_DLL TAU32_CALL_TYPE TAU32_SetCasIo(TAU32_Controller *pControllerObject, BOOLEAN Enabled); - unsigned __int64 TAU32_DDK_DLL TAU32_CALL_TYPE TAU32_ProbeGeneratorFrequency(unsigned __int64 Frequency); - unsigned __int64 TAU32_DDK_DLL TAU32_CALL_TYPE TAU32_SetGeneratorFrequency(TAU32_Controller *pControllerObject, unsigned __int64 Frequency); - BOOLEAN TAU32_DDK_DLL TAU32_CALL_TYPE TAU32_SetSyncMode(TAU32_Controller *pControllerObject, unsigned Mode); - BOOLEAN TAU32_DDK_DLL TAU32_CALL_TYPE TAU32_SetCrossMatrix(TAU32_Controller *pControllerObject, unsigned __int8 *pCrossMatrix, unsigned __int32 ReverseMask); - BOOLEAN TAU32_DDK_DLL TAU32_CALL_TYPE TAU32_SetIdleCodes(TAU32_Controller *pControllerObject, unsigned __int8 *pIdleCodes); - BOOLEAN TAU32_DDK_DLL TAU32_CALL_TYPE TAU32_UpdateIdleCodes(TAU32_Controller *pControllerObject, int Interface, unsigned __int32 TimeslotMask, unsigned __int8 IdleCode); - BOOLEAN TAU32_DDK_DLL TAU32_CALL_TYPE TAU32_SetSaCross(TAU32_Controller *pControllerObject, TAU32_SaCross SaCross); - int TAU32_DDK_DLL TAU32_CALL_TYPE TAU32_FifoPutCasAppend(TAU32_Controller *pControllerObject, int Interface, unsigned __int8 *pBuffer, unsigned Length); - int TAU32_DDK_DLL TAU32_CALL_TYPE TAU32_FifoPutCasAhead(TAU32_Controller *pControllerObject, int Interface, unsigned __int8 *pBuffer, unsigned Length); - int TAU32_DDK_DLL TAU32_CALL_TYPE TAU32_FifoGetCas(TAU32_Controller *pControllerObject, int Interface, unsigned __int8 *pBuffer, unsigned Length); - int TAU32_DDK_DLL TAU32_CALL_TYPE TAU32_FifoPutFasAppend(TAU32_Controller *pControllerObject, int Interface, unsigned __int8 *pBuffer, unsigned Length); - int TAU32_DDK_DLL TAU32_CALL_TYPE TAU32_FifoPutFasAhead(TAU32_Controller *pControllerObject, int Interface, unsigned __int8 *pBuffer, unsigned Length); - int TAU32_DDK_DLL TAU32_CALL_TYPE TAU32_FifoGetFas(TAU32_Controller *pControllerObject, int Interface, unsigned __int8 *pBuffer, unsigned Length); - BOOLEAN TAU32_DDK_DLL TAU32_CALL_TYPE TAU32_SetFifoTrigger(TAU32_Controller *pControllerObject, int Interface, unsigned FifoId, unsigned Level, TAU32_FifoTrigger Trigger); - void TAU32_DDK_DLL TAU32_CALL_TYPE TAU32_ReadTsc(TAU32_Controller *pControllerObject, TAU32_tsc *pResult); - - /* for Cronyx Engineering use only !!! */ - #define TAU32_CRONYX_P 0 - #define TAU32_CRONYX_PS 1 - #define TAU32_CRONYX_PA 2 - #define TAU32_CRONYX_PB 3 - #define TAU32_CRONYX_I 4 - #define TAU32_CRONYX_O 5 - #define TAU32_CRONYX_U 6 - #define TAU32_CRONYX_R 7 - #define TAU32_CRONYX_W 8 - #define TAU32_CRONYX_RW 9 - #define TAU32_CRONYX_WR 10 - #define TAU32_CRONYX_S 11 - #define TAU32_CRONYX_G 12 - unsigned __int32 TAU32_CALL_TYPE TAU32_Diag(TAU32_Controller *pControllerObject, unsigned Operation, unsigned __int32 Data); - -#ifdef __cplusplus -} -#endif diff --git a/sys/dev/cp/machdep.h b/sys/dev/cp/machdep.h deleted file mode 100644 index 2f8dbfa816d7..000000000000 --- a/sys/dev/cp/machdep.h +++ /dev/null @@ -1,89 +0,0 @@ -/*- - * Cronyx DDK: platform dependent definitions. - * - * Copyright (C) 1998-1999 Cronyx Engineering - * Author: Alexander Kvitchenko, - * - * Copyright (C) 2001-2003 Cronyx Engineering. - * Author: Roman Kurakin, - * - * This software is distributed with NO WARRANTIES, not even the implied - * warranties for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. - * - * Authors grant any other persons or organisations permission to use - * or modify this software as long as this message is kept with the software, - * all derivative works or modified versions. - * - * Cronyx Id: machdep.h,v 1.3.4.3 2003/11/27 14:21:58 rik Exp $ - * $FreeBSD$ - */ - -/* - * DOS (Borland Turbo C++ 1.0) - */ -#if defined (MSDOS) || defined (__MSDOS__) -# include -# include -# define inb(port) inportb(port) -# define inw(port) inport(port) -# define outb(port,b) outportb(port,b) -# define outw(port,w) outport(port,w) -# define GETTICKS() biostime(0,0L) -#else - -/* - * Windows NT - */ -#ifdef NDIS_MINIPORT_DRIVER -# include -# define inb(port) inp((unsigned short)(port)) -# define inw(port) inpw((unsigned short)(port)) -# define outb(port,b) outp((unsigned short)(port),b) -# define outw(port,w) outpw((unsigned short)(port),(unsigned short)(w)) -#pragma warning (disable: 4761) -#pragma warning (disable: 4242) -#pragma warning (disable: 4244) -#define ulong64 unsigned __int64 -#else - -/* - * Linux - */ -#ifdef __linux__ -# undef REALLY_SLOW_IO -# include /* should swap outb() arguments */ -# include -# include - static inline void __ddk_outb (unsigned port, unsigned char byte) - { outb (byte, port); } - static inline void __ddk_outw (unsigned port, unsigned short word) - { outw (word, port); } -# undef outb -# undef outw -# define outb(port,val) __ddk_outb(port, val) -# define outw(port,val) __ddk_outw(port, val) -# define GETTICKS() (jiffies * 200 / 11 / HZ) -#else - -/* - * FreeBSD and BSD/OS - */ -#ifdef __FreeBSD__ -# include -# include -# include -# include -# define port_t int -#endif - -#endif -#endif -#endif - -#ifndef inline -# define inline __inline__ -#endif - -#ifndef ulong64 -#define ulong64 unsigned long long -#endif diff --git a/sys/i386/conf/NOTES b/sys/i386/conf/NOTES index 1a3a79b76e34..367af20d3a09 100644 --- a/sys/i386/conf/NOTES +++ b/sys/i386/conf/NOTES @@ -1,893 +1,890 @@ # # NOTES -- Lines that can be cut/pasted into kernel and hints configs. # # This file contains machine dependent kernel configuration notes. For # machine independent notes, look in /sys/conf/NOTES. # # $FreeBSD$ # # # Enable the kernel DTrace hooks which are required to load the DTrace # kernel modules. # options KDTRACE_HOOKS # DTrace core # NOTE: introduces CDDL-licensed components into the kernel #device dtrace # DTrace modules #device dtrace_profile #device dtrace_sdt #device dtrace_fbt #device dtrace_systrace #device dtrace_prototype #device dtnfscl #device dtmalloc # Alternatively include all the DTrace modules #device dtraceall ##################################################################### # SMP OPTIONS: # # The apic device enables the use of the I/O APIC for interrupt delivery. # The apic device can be used in both UP and SMP kernels, but is required # for SMP kernels. Thus, the apic device is not strictly an SMP option, # but it is a prerequisite for SMP. # # Notes: # # HTT CPUs should only be used if they are enabled in the BIOS. For # the ACPI case, ACPI only correctly tells us about any HTT CPUs if # they are enabled. However, most HTT systems do not list HTT CPUs # in the MP Table if they are enabled, thus we guess at the HTT CPUs # for the MP Table case. However, we shouldn't try to guess and use # these CPUs if HTT is disabled. Thus, HTT guessing is only enabled # for the MP Table if the user explicitly asks for it via the # MPTABLE_FORCE_HTT option. Do NOT use this option if you have HTT # disabled in your BIOS. # # IPI_PREEMPTION instructs the kernel to preempt threads running on other # CPUS if needed. Relies on the PREEMPTION option # Mandatory: device apic # I/O apic # Optional: options MPTABLE_FORCE_HTT # Enable HTT CPUs with the MP Table options IPI_PREEMPTION # Debugging options. # options COUNT_XINVLTLB_HITS # Counters for TLB events options COUNT_IPIS # Per-CPU IPI interrupt counters ##################################################################### # CPU OPTIONS # # You must specify at least one CPU (the one you intend to run on); # deleting the specification for CPUs you don't need to use may make # parts of the system run faster. # cpu I486_CPU cpu I586_CPU # aka Pentium(tm) cpu I686_CPU # aka Pentium Pro(tm) # # Options for CPU features. # # CPU_ATHLON_SSE_HACK tries to enable SSE instructions when the BIOS has # forgotten to enable them. # # CPU_BLUELIGHTNING_3X enables triple-clock mode on IBM Blue Lightning # CPU if CPU supports it. The default is double-clock mode on # BlueLightning CPU box. # # CPU_BLUELIGHTNING_FPU_OP_CACHE enables FPU operand cache on IBM # BlueLightning CPU. It works only with Cyrix FPU, and this option # should not be used with Intel FPU. # # CPU_BTB_EN enables branch target buffer on Cyrix 5x86 (NOTE 1). # # CPU_CYRIX_NO_LOCK enables weak locking for the entire address space # of Cyrix 6x86 and 6x86MX CPUs by setting the NO_LOCK bit of CCR1. # Otherwise, the NO_LOCK bit of CCR1 is cleared. (NOTE 3) # # CPU_DIRECT_MAPPED_CACHE sets L1 cache of Cyrix 486DLC CPU in direct # mapped mode. Default is 2-way set associative mode. # # CPU_DISABLE_5X86_LSSER disables load store serialize (i.e., enables # reorder). This option should not be used if you use memory mapped # I/O device(s). # # CPU_ELAN enables support for AMDs ElanSC520 CPU. # CPU_ELAN_PPS enables precision timestamp code. # CPU_ELAN_XTAL sets the clock crystal frequency in Hz. # # CPU_ENABLE_LONGRUN enables support for Transmeta Crusoe LongRun # technology which allows to restrict power consumption of the CPU by # using group of hw.crusoe.* sysctls. # # CPU_FASTER_5X86_FPU enables faster FPU exception handler. # # CPU_GEODE is for the SC1100 Geode embedded processor. This option # is necessary because the i8254 timecounter is toast. # # CPU_I486_ON_386 enables CPU cache on i486 based CPU upgrade products # for i386 machines. # # CPU_IORT defines I/O clock delay time (NOTE 1). Default values of # I/O clock delay time on Cyrix 5x86 and 6x86 are 0 and 7,respectively # (no clock delay). # # CPU_L2_LATENCY specifies the L2 cache latency value. This option is used # only when CPU_PPRO2CELERON is defined and Mendocino Celeron is detected. # The default value is 5. # # CPU_LOOP_EN prevents flushing the prefetch buffer if the destination # of a jump is already present in the prefetch buffer on Cyrix 5x86(NOTE # 1). # # CPU_PPRO2CELERON enables L2 cache of Mendocino Celeron CPUs. This option # is useful when you use Socket 8 to Socket 370 converter, because most Pentium # Pro BIOSs do not enable L2 cache of Mendocino Celeron CPUs. # # CPU_RSTK_EN enables return stack on Cyrix 5x86 (NOTE 1). # # CPU_SOEKRIS enables support www.soekris.com hardware. # # CPU_SUSP_HLT enables suspend on HALT. If this option is set, CPU # enters suspend mode following execution of HALT instruction. # # CPU_UPGRADE_HW_CACHE eliminates unneeded cache flush instruction(s). # # CPU_WT_ALLOC enables write allocation on Cyrix 6x86/6x86MX and AMD # K5/K6/K6-2 CPUs. # # CYRIX_CACHE_WORKS enables CPU cache on Cyrix 486 CPUs with cache # flush at hold state. # # CYRIX_CACHE_REALLY_WORKS enables (1) CPU cache on Cyrix 486 CPUs # without cache flush at hold state, and (2) write-back CPU cache on # Cyrix 6x86 whose revision < 2.7 (NOTE 2). # # NO_F00F_HACK disables the hack that prevents Pentiums (and ONLY # Pentiums) from locking up when a LOCK CMPXCHG8B instruction is # executed. This option is only needed if I586_CPU is also defined, # and should be included for any non-Pentium CPU that defines it. # # NO_MEMORY_HOLE is an optimisation for systems with AMD K6 processors # which indicates that the 15-16MB range is *definitely* not being # occupied by an ISA memory hole. # # NOTE 1: The options, CPU_BTB_EN, CPU_LOOP_EN, CPU_IORT, # CPU_LOOP_EN and CPU_RSTK_EN should not be used because of CPU bugs. # These options may crash your system. # # NOTE 2: If CYRIX_CACHE_REALLY_WORKS is not set, CPU cache is enabled # in write-through mode when revision < 2.7. If revision of Cyrix # 6x86 >= 2.7, CPU cache is always enabled in write-back mode. # # NOTE 3: This option may cause failures for software that requires # locked cycles in order to operate correctly. # options CPU_ATHLON_SSE_HACK options CPU_BLUELIGHTNING_3X options CPU_BLUELIGHTNING_FPU_OP_CACHE options CPU_BTB_EN options CPU_DIRECT_MAPPED_CACHE options CPU_DISABLE_5X86_LSSER options CPU_ELAN options CPU_ELAN_PPS options CPU_ELAN_XTAL=32768000 options CPU_ENABLE_LONGRUN options CPU_FASTER_5X86_FPU options CPU_GEODE options CPU_I486_ON_386 options CPU_IORT options CPU_L2_LATENCY=5 options CPU_LOOP_EN options CPU_PPRO2CELERON options CPU_RSTK_EN options CPU_SOEKRIS options CPU_SUSP_HLT options CPU_UPGRADE_HW_CACHE options CPU_WT_ALLOC options CYRIX_CACHE_WORKS options CYRIX_CACHE_REALLY_WORKS #options NO_F00F_HACK # Debug options options NPX_DEBUG # enable npx debugging # # PERFMON causes the driver for Pentium/Pentium Pro performance counters # to be compiled. See perfmon(4) for more information. # options PERFMON ##################################################################### # NETWORKING OPTIONS # # DEVICE_POLLING adds support for mixed interrupt-polling handling # of network device drivers, which has significant benefits in terms # of robustness to overloads and responsivity, as well as permitting # accurate scheduling of the CPU time between kernel network processing # and other activities. The drawback is a moderate (up to 1/HZ seconds) # potential increase in response times. # It is strongly recommended to use HZ=1000 or 2000 with DEVICE_POLLING # to achieve smoother behaviour. # Additionally, you can enable/disable polling at runtime with help of # the ifconfig(8) utility, and select the CPU fraction reserved to # userland with the sysctl variable kern.polling.user_frac # (default 50, range 0..100). # # Not all device drivers support this mode of operation at the time of # this writing. See polling(4) for more details. options DEVICE_POLLING # BPF_JITTER adds support for BPF just-in-time compiler. options BPF_JITTER # OpenFabrics Enterprise Distribution (Infiniband). options OFED options OFED_DEBUG_INIT # Sockets Direct Protocol options SDP options SDP_DEBUG # IP over Infiniband options IPOIB options IPOIB_DEBUG options IPOIB_CM ##################################################################### # CLOCK OPTIONS # Provide read/write access to the memory in the clock chip. device nvram # Access to rtc cmos via /dev/nvram ##################################################################### # MISCELLANEOUS DEVICES AND OPTIONS device speaker #Play IBM BASIC-style noises out your speaker envvar hint.speaker.0.at="isa" envvar hint.speaker.0.port="0x61" ##################################################################### # HARDWARE BUS CONFIGURATION # # ISA bus # device isa # # Options for `isa': # # AUTO_EOI_1 enables the `automatic EOI' feature for the master 8259A # interrupt controller. This saves about 0.7-1.25 usec for each interrupt. # This option breaks suspend/resume on some portables. # # AUTO_EOI_2 enables the `automatic EOI' feature for the slave 8259A # interrupt controller. This saves about 0.7-1.25 usec for each interrupt. # Automatic EOI is documented not to work for the slave with the # original i8259A, but it works for some clones and some integrated # versions. # # MAXMEM specifies the amount of RAM on the machine; if this is not # specified, FreeBSD will first read the amount of memory from the CMOS # RAM, so the amount of memory will initially be limited to 64MB or 16MB # depending on the BIOS. If the BIOS reports 64MB, a memory probe will # then attempt to detect the installed amount of RAM. If this probe # fails to detect >64MB RAM you will have to use the MAXMEM option. # The amount is in kilobytes, so for a machine with 128MB of RAM, it would # be 131072 (128 * 1024). # # BROKEN_KEYBOARD_RESET disables the use of the keyboard controller to # reset the CPU for reboot. This is needed on some systems with broken # keyboard controllers. options AUTO_EOI_1 #options AUTO_EOI_2 options MAXMEM=(128*1024) #options BROKEN_KEYBOARD_RESET # # AGP GART support device agp # AGP debugging. options AGP_DEBUG ##################################################################### # HARDWARE DEVICE CONFIGURATION # To include support for VGA VESA video modes options VESA # Turn on extra debugging checks and output for VESA support. options VESA_DEBUG device dpms # DPMS suspend & resume via VESA BIOS # x86 real mode BIOS emulator, required by atkbdc/dpms/vesa options X86BIOS # # Hints for the non-optional Numeric Processing eXtension driver. envvar hint.npx.0.flags="0x0" envvar hint.npx.0.irq="13" # # `flags' for npx0: # 0x01 don't use the npx registers to optimize bcopy. # 0x02 don't use the npx registers to optimize bzero. # 0x04 don't use the npx registers to optimize copyin or copyout. # The npx registers are normally used to optimize copying and zeroing when # all of the following conditions are satisfied: # I586_CPU is an option # the cpu is an i586 (perhaps not a Pentium) # the probe for npx0 succeeds # INT 16 exception handling works. # Then copying and zeroing using the npx registers is normally 30-100% faster. # The flags can be used to control cases where it doesn't work or is slower. # Setting them at boot time using hints works right (the optimizations # are not used until later in the bootstrap when npx0 is attached). # Flag 0x08 automatically disables the i586 optimized routines. # # # Optional devices: # # PS/2 mouse device psm envvar hint.psm.0.at="atkbdc" envvar hint.psm.0.irq="12" # Options for psm: options PSM_HOOKRESUME #hook the system resume event, useful #for some laptops options PSM_RESETAFTERSUSPEND #reset the device at the resume event # The keyboard controller; it controls the keyboard and the PS/2 mouse. device atkbdc envvar hint.atkbdc.0.at="isa" envvar hint.atkbdc.0.port="0x060" # The AT keyboard device atkbd envvar hint.atkbd.0.at="atkbdc" envvar hint.atkbd.0.irq="1" # Options for atkbd: options ATKBD_DFLT_KEYMAP # specify the built-in keymap makeoptions ATKBD_DFLT_KEYMAP=fr.dvorak # `flags' for atkbd: # 0x01 Force detection of keyboard, else we always assume a keyboard # 0x02 Don't reset keyboard, useful for some newer ThinkPads # 0x03 Force detection and avoid reset, might help with certain # dockingstations # 0x04 Old-style (XT) keyboard support, useful for older ThinkPads # Video card driver for VGA adapters. device vga envvar hint.vga.0.at="isa" # Options for vga: # Try the following option if the mouse pointer is not drawn correctly # or font does not seem to be loaded properly. May cause flicker on # some systems. options VGA_ALT_SEQACCESS # If you can dispense with some vga driver features, you may want to # use the following options to save some memory. #options VGA_NO_FONT_LOADING # don't save/load font #options VGA_NO_MODE_CHANGE # don't change video modes # Older video cards may require this option for proper operation. options VGA_SLOW_IOACCESS # do byte-wide i/o's to TS and GDC regs # The following option probably won't work with the LCD displays. options VGA_WIDTH90 # support 90 column modes # Debugging. options VGA_DEBUG # vt(4) drivers. device vt_vga device vt_vbefb # Linear framebuffer driver for S3 VESA 1.2 cards. Works on top of VESA. device s3pci # 3Dfx Voodoo Graphics, Voodoo II /dev/3dfx CDEV support. This will create # the /dev/3dfx0 device to work with glide implementations. This should get # linked to /dev/3dfx and /dev/voodoo. Note that this is not the same as # the tdfx DRI module from XFree86 and is completely unrelated. # # To enable Linuxulator support, one must also load linux.ko and tdfx_linux.ko. device tdfx # Enable 3Dfx Voodoo support options IOMMU # Enable IOMMU support # # ACPI support using the Intel ACPI Component Architecture reference # implementation. # # ACPI_DEBUG enables the use of the debug.acpi.level and debug.acpi.layer # kernel environment variables to select initial debugging levels for the # Intel ACPICA code. (Note that the Intel code must also have USE_DEBUGGER # defined when it is built). device acpi options ACPI_DEBUG # ACPI WMI Mapping driver device acpi_wmi # ACPI Asus Extras (LCD backlight/brightness, video output, etc.) device acpi_asus # ACPI Fujitsu Extras (Buttons) device acpi_fujitsu # ACPI extras driver for HP laptops device acpi_hp # ACPI extras driver for IBM laptops device acpi_ibm # ACPI Panasonic Extras (LCD backlight/brightness, video output, etc.) device acpi_panasonic # ACPI Sony extra (LCD brightness) device acpi_sony # ACPI Toshiba Extras (LCD backlight/brightness, video output, etc.) device acpi_toshiba # ACPI Video Extensions (LCD backlight/brightness, video output, etc.) device acpi_video # ACPI Docking Station device acpi_dock # ACPI ASOC ATK0110 ASUSTeK AI Booster (voltage, temperature and fan sensors) device aibs # The cpufreq(4) driver provides support for non-ACPI CPU frequency control device cpufreq # # Network interfaces: # # bxe: Broadcom NetXtreme II (BCM5771X/BCM578XX) PCIe 10Gb Ethernet # adapters. -# ce: Cronyx Tau-PCI/32 sync single/dual port G.703/E1 serial adaptor -# with 32 HDLC subchannels, requires NETGRAPH # igc: Intel I225 2.5G Ethernet adapter # ipw: Intel PRO/Wireless 2100 IEEE 802.11 adapter # iwi: Intel PRO/Wireless 2200BG/2225BG/2915ABG IEEE 802.11 adapters # Requires the iwi firmware module # iwn: Intel Wireless WiFi Link 1000/105/135/2000/4965/5000/6000/6050 abgn # 802.11 network adapters # Requires the iwn firmware module # mthca: Mellanox HCA InfiniBand # mlx4ib: Mellanox ConnectX HCA InfiniBand # mlx4en: Mellanox ConnectX HCA Ethernet # nfe: nVidia nForce MCP on-board Ethernet Networking (BSD open source) # sbni: Granch SBNI12-xx ISA and PCI adapters # vmx: VMware VMXNET3 Ethernet (BSD open source) # wpi: Intel 3945ABG Wireless LAN controller # Requires the wpi firmware module # Order for ISA/EISA devices is important here device bxe # Broadcom NetXtreme II BCM5771X/BCM578XX 10GbE -device ce envvar hint.cs.0.at="isa" envvar hint.cs.0.port="0x300" envvar hint.ed.0.at="isa" envvar hint.ed.0.port="0x280" envvar hint.ed.0.irq="5" envvar hint.ed.0.maddr="0xd8000" device igc # Intel I225 2.5G Ethernet device ipw # Intel 2100 wireless NICs. device iwi # Intel 2200BG/2225BG/2915ABG wireless NICs. device iwn # Intel 4965/1000/5000/6000 wireless NICs. # Hint for the i386-only ISA front-end of le(4). envvar hint.le.0.at="isa" envvar hint.le.0.port="0x280" envvar hint.le.0.irq="10" envvar hint.le.0.drq="0" device mthca # Mellanox HCA InfiniBand device mlx4 # Shared code module between IB and Ethernet device mlx4ib # Mellanox ConnectX HCA InfiniBand device mlx4en # Mellanox ConnectX HCA Ethernet device nfe # nVidia nForce MCP on-board Ethernet device sbni envvar hint.sbni.0.at="isa" envvar hint.sbni.0.port="0x210" envvar hint.sbni.0.irq="0xefdead" envvar hint.sbni.0.flags="0" device vmx # VMware VMXNET3 Ethernet device wpi # Intel 3945ABG wireless NICs. # IEEE 802.11 adapter firmware modules # Intel PRO/Wireless 2100 firmware: # ipwfw: BSS/IBSS/monitor mode firmware # ipwbssfw: BSS mode firmware # ipwibssfw: IBSS mode firmware # ipwmonitorfw: Monitor mode firmware # Intel PRO/Wireless 2200BG/2225BG/2915ABG firmware: # iwifw: BSS/IBSS/monitor mode firmware # iwibssfw: BSS mode firmware # iwiibssfw: IBSS mode firmware # iwimonitorfw: Monitor mode firmware # Intel Wireless WiFi Link 4965/1000/5000/6000 series firmware: # iwnfw: Single module to support all devices # iwn1000fw: Specific module for the 1000 only # iwn105fw: Specific module for the 105 only # iwn135fw: Specific module for the 135 only # iwn2000fw: Specific module for the 2000 only # iwn2030fw: Specific module for the 2030 only # iwn4965fw: Specific module for the 4965 only # iwn5000fw: Specific module for the 5000 only # iwn5150fw: Specific module for the 5150 only # iwn6000fw: Specific module for the 6000 only # iwn6000g2afw: Specific module for the 6000g2a only # iwn6000g2bfw: Specific module for the 6000g2b only # iwn6050fw: Specific module for the 6050 only # wpifw: Intel 3945ABG Wireless LAN Controller firmware device iwifw device iwibssfw device iwiibssfw device iwimonitorfw device ipwfw device ipwbssfw device ipwibssfw device ipwmonitorfw device iwnfw device iwn1000fw device iwn105fw device iwn135fw device iwn2000fw device iwn2030fw device iwn4965fw device iwn5000fw device iwn5150fw device iwn6000fw device iwn6000g2afw device iwn6000g2bfw device iwn6050fw device wpifw # # Non-Transparent Bridge (NTB) drivers # device if_ntb # Virtual NTB network interface device ntb_transport # NTB packet transport driver device ntb # NTB hardware interface device ntb_hw_amd # AMD NTB hardware driver device ntb_hw_intel # Intel NTB hardware driver device ntb_hw_plx # PLX NTB hardware driver # # ATA raid adapters # device pst # # Areca 11xx and 12xx series of SATA II RAID controllers. # CAM is required. # device arcmsr # Areca SATA II RAID # # Adaptec FSA RAID controllers, including integrated DELL controllers, # the Dell PERC 2/QC and the HP NetRAID-4M device aac device aacp # SCSI Passthrough interface (optional, CAM required) # # Adaptec by PMC RAID controllers, Series 6/7/8 and upcoming families device aacraid # Container interface, CAM required # # Highpoint RocketRAID 27xx. device hpt27xx # # Highpoint RocketRAID 182x. device hptmv # # Highpoint DC7280 and R750. device hptnr # # Highpoint RocketRAID. Supports RR172x, RR222x, RR2240, RR232x, RR2340, # RR2210, RR174x, RR2522, RR231x, RR230x. device hptrr # # Highpoint RocketRaid 3xxx series SATA RAID device hptiop # # Intel integrated Memory Controller (iMC) SMBus controller # Sandybridge-Xeon, Ivybridge-Xeon, Haswell-Xeon, Broadwell-Xeon device imcsmb # # IBM (now Adaptec) ServeRAID controllers device ips # # Intel C600 (Patsburg) integrated SAS controller device isci options ISCI_LOGGING # enable debugging in isci HAL # # NVM Express (NVMe) support device nvme # base NVMe driver device nvd # expose NVMe namespaces as disks, depends on nvme # # Intel Volume Management Device (VMD) support device vmd # # PMC-Sierra SAS/SATA controller device pmspcv # # SafeNet crypto driver: can be moved to the MI NOTES as soon as # it's tested on a big-endian machine # device safe # SafeNet 1141 options SAFE_DEBUG # enable debugging support: hw.safe.debug options SAFE_RNDTEST # enable rndtest support # # glxiic is an I2C driver for the AMD Geode LX CS5536 System Management Bus # controller. Requires 'device iicbus'. # device glxiic # AMD Geode LX CS5536 System Management Bus # # glxsb is a driver for the Security Block in AMD Geode LX processors. # Requires 'device crypto'. # device glxsb # AMD Geode LX Security Block # # VirtIO support # # The virtio entry provides a generic bus for use by the device drivers. # It must be combined with an interface that communicates with the host. # Multiple such interfaces defined by the VirtIO specification. FreeBSD # only has support for PCI. Therefore, virtio_pci must be statically # compiled in or loaded as a module for the device drivers to function. # device virtio # Generic VirtIO bus (required) device virtio_pci # VirtIO PCI Interface device vtnet # VirtIO Ethernet device device virtio_blk # VirtIO Block device device virtio_scsi # VirtIO SCSI device device virtio_balloon # VirtIO Memory Balloon device device virtio_random # VirtIO Entropy device device virtio_console # VirtIO Console device # Linux KVM paravirtualization support device kvm_clock # KVM paravirtual clock driver options HYPERV device hyperv # HyperV drivers ##################################################################### # # Miscellaneous hardware: # # ipmi: Intelligent Platform Management Interface # smapi: System Management Application Program Interface driver # smbios: DMI/SMBIOS entry point # vpd: Vital Product Data kernel interface # pbio: Parallel (8255 PPI) basic I/O (mode 0) port (e.g. Advantech PCL-724) # asmc: Apple System Management Controller # si: Specialix International SI/XIO or SX intelligent serial card driver # tpm: Trusted Platform Module # Notes on the Specialix SI/XIO driver: # The host card is memory, not IO mapped. # The Rev 1 host cards use a 64K chunk, on a 32K boundary. # The Rev 2 host cards use a 32K chunk, on a 32K boundary. # The cards can use an IRQ of 11, 12 or 15. # Notes on the Sony Programmable I/O controller # This is a temporary driver that should someday be replaced by something # that hooks into the ACPI layer. The device is hooked to the PIIX4's # General Device 10 decoder, which means you have to fiddle with PCI # registers to map it in, even though it is otherwise treated here as # an ISA device. At the moment, the driver polls, although the device # is capable of generating interrupts. It largely undocumented. # The port location in the hint is where you WANT the device to be # mapped. 0x10a0 seems to be traditional. At the moment the jogdial # is the only thing truly supported, but apparently a fair percentage # of the Vaio extra features are controlled by this device. device ipmi device smapi device smbios device vpd device pbio envvar hint.pbio.0.at="isa" envvar hint.pbio.0.port="0x360" device asmc device tpm device padlock_rng # VIA Padlock RNG device rdrand_rng # Intel Bull Mountain RNG device aesni # AES-NI OpenCrypto module device ossl # OpenSSL OpenCrypto module # # Laptop/Notebook options: # # See also: # apm under `Miscellaneous hardware' # above. device backlight # For older notebooks that signal a powerfail condition (external # power supply dropped, or battery state low) by issuing an NMI: options POWERFAIL_NMI # make it beep instead of panicing # # I2C Bus # # Philips i2c bus support is provided by the `iicbus' device. # # Supported interfaces: # pcf Philips PCF8584 ISA-bus controller # device pcf envvar hint.pcf.0.at="isa" envvar hint.pcf.0.port="0x320" envvar hint.pcf.0.irq="5" # # Hardware watchdog timers: # # ichwd: Intel ICH watchdog timer # amdsbwd: AMD SB7xx watchdog timer # viawd: VIA south bridge watchdog timer # wbwd: Winbond watchdog timer # itwd: ITE Super I/O watchdog timer # device ichwd device amdsbwd device viawd device wbwd device itwd # # Temperature sensors: # # coretemp: on-die sensor on Intel Core and newer CPUs # amdtemp: on-die sensor on AMD K8/K10/K11 CPUs # device coretemp device amdtemp # # CPU control pseudo-device. Provides access to MSRs, CPUID info and # microcode update feature. # device cpuctl # # SuperIO driver. # device superio # # System Management Bus (SMB) # options ENABLE_ALART # Control alarm on Intel intpm driver # # Set the number of PV entries per process. Increasing this can # stop panics related to heavy use of shared memory. However, that can # (combined with large amounts of physical memory) cause panics at # boot time due the kernel running out of VM space. # # If you're tweaking this, you might also want to increase the sysctls # "vm.v_free_min", "vm.v_free_reserved", and "vm.v_free_target". # # The value below is the one more than the default. # options PMAP_SHPGPERPROC=201 # # Number of initial kernel page table pages used for early bootstrap. # This number should include enough pages to map the kernel, any # modules or other data loaded with the kernel by the loader, and data # structures allocated before the VM system is initialized such as the # vm_page_t array. Each page table page maps 4MB (2MB with PAE). # options NKPT=31 # # HID-over-I2C support # device iichid # HID-over-I2C support options IICHID_DEBUG # Enable HID-over-I2C debug messages options IICHID_SAMPLING # Workaround missing GPIO INTR support ##################################################################### # ABI Emulation # Enable (32-bit) a.out binary support options COMPAT_AOUT ##################################################################### # VM OPTIONS # KSTACK_PAGES is the number of memory pages to assign to the kernel # stack of each thread. options KSTACK_PAGES=5 # Enable detailed accounting by the PV entry allocator. options PV_STATS ##################################################################### # More undocumented options for linting. # Note that documenting these are not considered an affront. options KBDIO_DEBUG=2 options KBD_MAXRETRY=4 options KBD_MAXWAIT=6 options KBD_RESETDELAY=201 options PSM_DEBUG=1 options TIMER_FREQ=((14318182+6)/12) options VM_KMEM_SIZE options VM_KMEM_SIZE_MAX options VM_KMEM_SIZE_SCALE ##################################################################### # Items broken on i386 that are generally available elsewhere # Device uses bus_read_8 and friends, so can't work. Remove it from lint. nodevice bnxt diff --git a/sys/modules/Makefile b/sys/modules/Makefile index 7655260e8e46..c4569e199eb3 100644 --- a/sys/modules/Makefile +++ b/sys/modules/Makefile @@ -1,887 +1,883 @@ # $FreeBSD$ SYSDIR?=${SRCTOP}/sys .include "${SYSDIR}/conf/kern.opts.mk" SUBDIR_PARALLEL= # Modules that include binary-only blobs of microcode should be selectable by # MK_SOURCELESS_UCODE option (see below). .include "${SYSDIR}/conf/config.mk" .if defined(MODULES_OVERRIDE) && !defined(ALL_MODULES) SUBDIR=${MODULES_OVERRIDE} .else SUBDIR= \ ${_3dfx} \ ${_3dfx_linux} \ ${_aac} \ ${_aacraid} \ accf_data \ accf_dns \ accf_http \ acl_nfs4 \ acl_posix1e \ ${_acpi} \ ae \ ${_aesni} \ age \ ${_agp} \ ahci \ aic7xxx \ alc \ ale \ alq \ ${_amd_ecc_inject} \ ${_amdgpio} \ ${_amdsbwd} \ ${_amdsmn} \ ${_amdtemp} \ ${_aout} \ ${_arcmsr} \ ${_allwinner} \ ${_armv8crypto} \ ${_asmc} \ ata \ ath \ ath_dfs \ ath_hal \ ath_hal_ar5210 \ ath_hal_ar5211 \ ath_hal_ar5212 \ ath_hal_ar5416 \ ath_hal_ar9300 \ ath_main \ ath_rate \ ath_pci \ ${_autofs} \ axgbe \ backlight \ ${_bce} \ ${_bcm283x_clkman} \ ${_bcm283x_pwm} \ bfe \ bge \ bhnd \ ${_bxe} \ ${_bios} \ ${_blake2} \ ${_bnxt} \ bridgestp \ bwi \ bwn \ ${_bytgpio} \ ${_chvgpio} \ cam \ ${_cardbus} \ ${_carp} \ cas \ ${_cbb} \ cc \ ${_ccp} \ cd9660 \ cd9660_iconv \ - ${_ce} \ ${_cfi} \ ${_chromebook_platform} \ ${_ciss} \ ${_coretemp} \ ${_cp} \ ${_cpsw} \ ${_cpuctl} \ ${_cpufreq} \ ${_crypto} \ ${_cryptodev} \ ctl \ ${_cxgb} \ ${_cxgbe} \ dc \ dcons \ dcons_crom \ ${_dpaa2} \ ${_dpdk_lpm4} \ ${_dpdk_lpm6} \ ${_dpms} \ dummynet \ ${_dwwdt} \ ${_e6000sw} \ ${_efirt} \ ${_em} \ ${_ena} \ ${_enetc} \ ${_et} \ evdev \ ${_exca} \ ext2fs \ fdc \ fdescfs \ ${_felix} \ ${_ffec} \ ${_fib_dxr} \ filemon \ firewire \ firmware \ flash \ ${_ftwd} \ fusefs \ ${_fxp} \ gem \ geom \ ${_glxiic} \ ${_glxsb} \ gpio \ hid \ hifn \ ${_hpt27xx} \ ${_hptiop} \ ${_hptmv} \ ${_hptnr} \ ${_hptrr} \ hwpmc \ ${_hyperv} \ i2c \ ${_iavf} \ ${_ibcore} \ ${_ichwd} \ ${_ice} \ ${_ice_ddp} \ ${_irdma} \ ${_ida} \ if_bridge \ ${_if_cgem} \ if_disc \ if_edsc \ ${_if_enc} \ if_epair \ ${_if_gif} \ ${_if_gre} \ ${_if_me} \ if_infiniband \ if_lagg \ if_ovpn \ ${_if_stf} \ if_tuntap \ if_vlan \ if_vxlan \ ${_if_wg} \ iflib \ ${_igc} \ imgact_binmisc \ ${_intelspi} \ ${_io} \ ${_ioat} \ ${_ipoib} \ ipdivert \ ${_ipfilter} \ ${_ipfw} \ ipfw_nat \ ${_ipfw_nat64} \ ${_ipfw_nptv6} \ ${_ipfw_pmod} \ ${_ipmi} \ ip6_mroute_mod \ ip_mroute_mod \ ${_ips} \ ${_ipsec} \ ${_ipw} \ ${_ipwfw} \ ${_isci} \ ${_iser} \ isp \ ${_ispfw} \ ${_itwd} \ ${_iwi} \ ${_iwifw} \ ${_iwlwifi} \ ${_iwlwififw} \ ${_iwm} \ ${_iwmfw} \ ${_iwn} \ ${_iwnfw} \ ${_ix} \ ${_ixv} \ ${_ixl} \ jme \ kbdmux \ kgssapi \ kgssapi_krb5 \ khelp \ krpc \ ksyms \ le \ lge \ libalias \ libiconv \ libmchain \ lindebugfs \ linuxkpi \ linuxkpi_wlan \ ${_lio} \ lpt \ ${_mac_biba} \ ${_mac_bsdextended} \ ${_mac_ddb} \ ${_mac_ifoff} \ ${_mac_lomac} \ ${_mac_mls} \ ${_mac_none} \ ${_mac_ntpd} \ ${_mac_partition} \ ${_mac_pimd} \ ${_mac_portacl} \ ${_mac_priority} \ ${_mac_seeotheruids} \ ${_mac_stub} \ ${_mac_test} \ ${_malo} \ ${_mana} \ md \ mdio \ ${_mgb} \ mem \ mfi \ mii \ mlx \ mlxfw \ ${_mlx4} \ ${_mlx4ib} \ ${_mlx4en} \ ${_mlx5} \ ${_mlx5en} \ ${_mlx5ib} \ mmc \ mmcsd \ ${_mpr} \ ${_mps} \ mpt \ mqueue \ mrsas \ msdosfs \ msdosfs_iconv \ msk \ ${_mthca} \ mvs \ mwl \ ${_mwlfw} \ mxge \ my \ ${_nctgpio} \ ${_neta} \ netlink \ ${_netgraph} \ ${_nfe} \ nfscl \ nfscommon \ nfsd \ nfslockd \ nfssvc \ nge \ nmdm \ nullfs \ ${_ntb} \ ${_nvd} \ ${_nvdimm} \ ${_nvme} \ ${_nvram} \ oce \ ${_ocs_fc} \ ${_ossl} \ otus \ ${_otusfw} \ ow \ ${_padlock} \ ${_padlock_rng} \ ${_pchtherm} \ ${_pcfclock} \ ${_pf} \ ${_pflog} \ ${_pfsync} \ plip \ ${_pms} \ ppbus \ ppc \ ppi \ pps \ procfs \ proto \ pseudofs \ ${_pst} \ pty \ puc \ pwm \ ${_qat} \ ${_qatfw} \ ${_qat_c2xxx} \ ${_qat_c2xxxfw} \ ${_qlxge} \ ${_qlxgb} \ ${_qlxgbe} \ ${_qlnx} \ ral \ ${_ralfw} \ ${_random_fortuna} \ ${_random_other} \ rc4 \ ${_rdma} \ ${_rdrand_rng} \ re \ rl \ ${_rockchip} \ rtsx \ ${_rtw88} \ ${_rtw88fw} \ rtwn \ rtwn_pci \ rtwn_usb \ ${_rtwnfw} \ ${_s3} \ ${_safe} \ safexcel \ ${_sbni} \ scc \ ${_sctp} \ sdhci \ ${_sdhci_acpi} \ ${_sdhci_fdt} \ sdhci_pci \ sdio \ sem \ send \ ${_sfxge} \ sge \ ${_sgx} \ ${_sgx_linux} \ siftr \ siis \ sis \ sk \ ${_smartpqi} \ smbfs \ snp \ sound \ ${_speaker} \ spi \ ${_splash} \ ste \ stge \ ${_sume} \ ${_superio} \ ${_p2sb} \ sym \ ${_syscons} \ sysvipc \ tcp \ ${_ti} \ tmpfs \ ${_toecore} \ ${_tpm} \ twe \ tws \ uart \ udf \ udf_iconv \ ufs \ uinput \ unionfs \ usb \ ${_vesa} \ virtio \ vge \ ${_viawd} \ videomode \ vkbd \ ${_vmd} \ ${_vmm} \ ${_vmware} \ vr \ vte \ ${_wbwd} \ wlan \ wlan_acl \ wlan_amrr \ wlan_ccmp \ wlan_rssadapt \ wlan_tkip \ wlan_wep \ wlan_xauth \ ${_wpi} \ ${_wpifw} \ ${_x86bios} \ xdr \ xl \ xz \ zlib .if ${MK_AUTOFS} != "no" || defined(ALL_MODULES) _autofs= autofs .endif .if ${MK_DTRACE} != "no" || defined(ALL_MODULES) .if ${KERN_OPTS:MKDTRACE_HOOKS} SUBDIR+= dtrace .endif SUBDIR+= opensolaris .endif # Requires bus_space_read_8 .if ${MACHINE_ARCH} != "i386" _bnxt= bnxt .endif .if ${MK_CRYPT} != "no" || defined(ALL_MODULES) .if exists(${SRCTOP}/sys/opencrypto) _crypto= crypto _cryptodev= cryptodev _random_fortuna=random_fortuna _random_other= random_other .endif .endif .if ${MK_CUSE} != "no" || defined(ALL_MODULES) SUBDIR+= cuse .endif .if ${MK_EFI} != "no" .if ${MACHINE_CPUARCH} == "aarch64" || ${MACHINE_CPUARCH} == "amd64" _efirt= efirt .endif .endif .if (${MK_INET_SUPPORT} != "no" || ${MK_INET6_SUPPORT} != "no") || \ defined(ALL_MODULES) _carp= carp _toecore= toecore _if_enc= if_enc _if_gif= if_gif _if_gre= if_gre .if ${MK_CRYPT} != "no" || defined(ALL_MODULES) _if_wg= if_wg .endif _ipfw_pmod= ipfw_pmod .if ${KERN_OPTS:MIPSEC_SUPPORT} && !${KERN_OPTS:MIPSEC} _ipsec= ipsec .endif .if ${KERN_OPTS:MSCTP_SUPPORT} || ${KERN_OPTS:MSCTP} _sctp= sctp .endif .endif .if (${MK_INET_SUPPORT} != "no" && ${MK_INET6_SUPPORT} != "no") || \ defined(ALL_MODULES) _if_stf= if_stf .endif .if ${MK_INET_SUPPORT} != "no" || defined(ALL_MODULES) _if_me= if_me _ipfw= ipfw .if ${MK_INET6_SUPPORT} != "no" || defined(ALL_MODULES) _ipfw_nat64= ipfw_nat64 .endif .endif .if ${MK_INET6_SUPPORT} != "no" || defined(ALL_MODULES) _ipfw_nptv6= ipfw_nptv6 .endif .if ${MK_IPFILTER} != "no" || defined(ALL_MODULES) _ipfilter= ipfilter .endif .if ${MK_INET_SUPPORT} != "no" && ${KERN_OPTS:MFIB_ALGO} _dpdk_lpm4= dpdk_lpm4 _fib_dxr= fib_dxr .endif .if ${MK_INET6_SUPPORT} != "no" && ${KERN_OPTS:MFIB_ALGO} _dpdk_lpm6= dpdk_lpm6 .endif .if ${MK_ISCSI} != "no" || defined(ALL_MODULES) SUBDIR+= cfiscsi SUBDIR+= iscsi .endif .if !empty(OPT_FDT) SUBDIR+= fdt .endif # Linuxulator .if ${MACHINE_CPUARCH} == "aarch64" || ${MACHINE_CPUARCH} == "amd64" || \ ${MACHINE_CPUARCH} == "i386" SUBDIR+= linprocfs SUBDIR+= linsysfs .endif .if ${MACHINE_CPUARCH} == "amd64" || ${MACHINE_CPUARCH} == "i386" SUBDIR+= linux .endif .if ${MACHINE_CPUARCH} == "aarch64" || ${MACHINE_CPUARCH} == "amd64" SUBDIR+= linux64 SUBDIR+= linux_common .endif .if ${MACHINE_CPUARCH} == "aarch64" || ${MACHINE_CPUARCH} == "amd64" || \ ${MACHINE_CPUARCH} == "i386" _ena= ena .if ${MK_OFED} != "no" || defined(ALL_MODULES) _ibcore= ibcore _ipoib= ipoib _iser= iser .endif _ipmi= ipmi _iwlwifi= iwlwifi .if ${MK_SOURCELESS_UCODE} != "no" _iwlwififw= iwlwififw .endif _mlx4= mlx4 _mlx5= mlx5 .if (${MK_INET_SUPPORT} != "no" && ${MK_INET6_SUPPORT} != "no") || \ defined(ALL_MODULES) _mlx4en= mlx4en _mlx5en= mlx5en .endif .if ${MK_OFED} != "no" || defined(ALL_MODULES) _mthca= mthca _mlx4ib= mlx4ib _mlx5ib= mlx5ib .endif _ossl= ossl _rtw88= rtw88 .if ${MK_SOURCELESS_UCODE} != "no" _rtw88fw= rtw88fw .endif _vmware= vmware .endif # MAC framework .if ${KERN_OPTS:MMAC} || defined(ALL_MODULES) _mac_biba= mac_biba _mac_bsdextended= mac_bsdextended .if ${KERN_OPTS:MDDB} || defined(ALL_MODULES) _mac_ddb= mac_ddb .endif _mac_ifoff= mac_ifoff _mac_lomac= mac_lomac _mac_mls= mac_mls _mac_none= mac_none _mac_ntpd= mac_ntpd _mac_partition= mac_partition _mac_pimd= mac_pimd _mac_portacl= mac_portacl _mac_priority= mac_priority _mac_seeotheruids= mac_seeotheruids _mac_stub= mac_stub _mac_test= mac_test .endif .if ${MK_NETGRAPH} != "no" || defined(ALL_MODULES) _netgraph= netgraph .endif .if (${MK_PF} != "no" && (${MK_INET_SUPPORT} != "no" || \ ${MK_INET6_SUPPORT} != "no")) || defined(ALL_MODULES) _pf= pf _pflog= pflog .if ${MK_INET_SUPPORT} != "no" _pfsync= pfsync .endif .endif .if ${MK_SOURCELESS_UCODE} != "no" _bce= bce _fxp= fxp _ispfw= ispfw _ti= ti _mwlfw= mwlfw _otusfw= otusfw _ralfw= ralfw _rtwnfw= rtwnfw .endif .if ${MK_SOURCELESS_UCODE} != "no" && ${MACHINE_CPUARCH} != "arm" && \ ${MACHINE_ARCH} != "powerpc" && ${MACHINE_ARCH} != "powerpcspe" && \ ${MACHINE_CPUARCH} != "riscv" _cxgbe= cxgbe .endif .if ${MACHINE_ARCH} == "amd64" || ${MACHINE_ARCH} == "arm64" || ${MACHINE_ARCH:Mpowerpc64*} _ice= ice .if ${MK_SOURCELESS_UCODE} != "no" _ice_ddp= ice_ddp .endif .if ${MK_OFED} != "no" || defined(ALL_MODULES) .if ${MK_INET_SUPPORT} != "no" && ${MK_INET6_SUPPORT} != "no" _irdma= irdma .endif .endif .endif .if ${MACHINE_CPUARCH} == "aarch64" || ${MACHINE_CPUARCH} == "arm" || \ ${MACHINE_CPUARCH} == "riscv" .if !empty(OPT_FDT) _if_cgem= if_cgem .endif .endif # These rely on 64bit atomics .if ${MACHINE_ARCH} != "powerpc" && ${MACHINE_ARCH} != "powerpcspe" _mps= mps _mpr= mpr .endif .if ${MK_TESTS} != "no" || defined(ALL_MODULES) SUBDIR+= tests .endif .if ${MK_ZFS} != "no" || (defined(ALL_MODULES) && ${MACHINE_CPUARCH} != "powerpc") SUBDIR+= zfs .endif .if ${MK_SOURCELESS_UCODE} != "no" _cxgb= cxgb .endif .if ${MACHINE_CPUARCH} == "aarch64" _armv8crypto= armv8crypto _dpaa2= dpaa2 _em= em _hyperv= hyperv .if !empty(OPT_FDT) _allwinner= allwinner _dwwdt= dwwdt _enetc= enetc _felix= felix _rockchip= rockchip .endif .endif .if ${MACHINE_CPUARCH} == "aarch64" || ${MACHINE_CPUARCH} == "arm" .if !empty(OPT_FDT) _sdhci_fdt= sdhci_fdt .endif _e6000sw= e6000sw _neta= neta .endif .if ${MACHINE_CPUARCH} == "i386" || ${MACHINE_CPUARCH} == "amd64" _agp= agp .if ${MACHINE_CPUARCH} == "i386" || !empty(COMPAT_FREEBSD32_ENABLED) _aout= aout .endif _bios= bios .if ${MK_SOURCELESS_UCODE} != "no" _bxe= bxe .endif _cardbus= cardbus _cbb= cbb _cpuctl= cpuctl _cpufreq= cpufreq _dpms= dpms _em= em _et= et _ftwd= ftwd _exca= exca _igc= igc _io= io _itwd= itwd _ix= ix _ixv= ixv .if ${MK_SOURCELESS_UCODE} != "no" _lio= lio .endif _mana= mana _mgb= mgb _nctgpio= nctgpio _ntb= ntb _ocs_fc= ocs_fc _p2sb= p2sb _qat= qat _qatfw= qatfw _qat_c2xxx= qat_c2xxx _qat_c2xxxfw= qat_c2xxxfw .if ${MK_OFED} != "no" || defined(ALL_MODULES) _rdma= rdma .endif _safe= safe _speaker= speaker _splash= splash _syscons= syscons _wbwd= wbwd _aac= aac _aacraid= aacraid _acpi= acpi .if ${MK_CRYPT} != "no" || defined(ALL_MODULES) _aesni= aesni .endif _amd_ecc_inject=amd_ecc_inject _amdsbwd= amdsbwd _amdsmn= amdsmn _amdtemp= amdtemp _arcmsr= arcmsr _asmc= asmc .if ${MK_CRYPT} != "no" || defined(ALL_MODULES) _blake2= blake2 .endif _bytgpio= bytgpio _chvgpio= chvgpio _ciss= ciss _chromebook_platform= chromebook_platform _coretemp= coretemp .if ${MK_SOURCELESS_HOST} != "no" && empty(KCSAN_ENABLED) _hpt27xx= hpt27xx .endif _hptiop= hptiop .if ${MK_SOURCELESS_HOST} != "no" && empty(KCSAN_ENABLED) _hptmv= hptmv _hptnr= hptnr _hptrr= hptrr .endif _hyperv= hyperv _ichwd= ichwd _ida= ida _intelspi= intelspi _ips= ips _isci= isci _ipw= ipw _iwi= iwi _iwm= iwm _iwn= iwn .if ${MK_SOURCELESS_UCODE} != "no" _ipwfw= ipwfw _iwifw= iwifw _iwmfw= iwmfw _iwnfw= iwnfw .endif _nfe= nfe _nvd= nvd _nvme= nvme _nvram= nvram .if ${MK_CRYPT} != "no" || defined(ALL_MODULES) _padlock= padlock _padlock_rng= padlock_rng _rdrand_rng= rdrand_rng .endif _pchtherm = pchtherm _s3= s3 _sdhci_acpi= sdhci_acpi _superio= superio _tpm= tpm _vesa= vesa _viawd= viawd _vmd= vmd _wpi= wpi .if ${MK_SOURCELESS_UCODE} != "no" _wpifw= wpifw .endif _x86bios= x86bios .endif .if ${MACHINE_CPUARCH} == "amd64" _amdgpio= amdgpio _ccp= ccp _iavf= iavf _ioat= ioat _ixl= ixl _nvdimm= nvdimm _pms= pms _qlxge= qlxge _qlxgb= qlxgb _sume= sume .if ${MK_SOURCELESS_UCODE} != "no" _qlxgbe= qlxgbe _qlnx= qlnx .endif _sfxge= sfxge _sgx= sgx _sgx_linux= sgx_linux _smartpqi= smartpqi _p2sb= p2sb .if ${MK_BHYVE} != "no" || defined(ALL_MODULES) .if ${KERN_OPTS:MSMP} _vmm= vmm .endif .endif .endif .if ${MACHINE_CPUARCH} == "i386" # XXX some of these can move to the general case when de-i386'ed # XXX some of these can move now, but are untested on other architectures. _3dfx= 3dfx _3dfx_linux= 3dfx_linux .if ${MK_SOURCELESS_HOST} != "no" -_ce= ce -.endif -.if ${MK_SOURCELESS_HOST} != "no" _cp= cp .endif _glxiic= glxiic _glxsb= glxsb _pcfclock= pcfclock _pst= pst _sbni= sbni .endif .if ${MACHINE_ARCH} == "armv7" _cfi= cfi _cpsw= cpsw .endif .if ${MACHINE_CPUARCH} == "powerpc" _aacraid= aacraid _agp= agp _an= an _cardbus= cardbus _cbb= cbb _cfi= cfi _cpufreq= cpufreq _exca= exca _ffec= ffec _nvd= nvd _nvme= nvme .endif .if ${MACHINE_ARCH:Mpowerpc64*} != "" _ipmi= ipmi _ixl= ixl _nvram= opal_nvram .endif .if ${MACHINE_CPUARCH} == "powerpc" && ${MACHINE_ARCH} != "powerpcspe" # Don't build powermac_nvram for powerpcspe, it's never supported. _nvram+= powermac_nvram .endif .if ${MACHINE_CPUARCH} == "arm" || ${MACHINE_CPUARCH} == "aarch64" _bcm283x_clkman= bcm283x_clkman _bcm283x_pwm= bcm283x_pwm .endif .if !(${COMPILER_TYPE} == "clang" && ${COMPILER_VERSION} < 110000) # LLVM 10 crashes when building if_malo_pci.c, fixed in LLVM11: # https://bugs.llvm.org/show_bug.cgi?id=44351 _malo= malo .endif SUBDIR+=${MODULES_EXTRA} .for reject in ${WITHOUT_MODULES} SUBDIR:= ${SUBDIR:N${reject}} .endfor .endif # MODULES_OVERRIDE -- Keep last # Calling kldxref(8) for each module is expensive. .if !defined(NO_XREF) .MAKEFLAGS+= -DNO_XREF afterinstall: .PHONY @if type kldxref >/dev/null 2>&1; then \ ${ECHO} ${KLDXREF_CMD} ${DESTDIR}${KMODDIR}; \ ${KLDXREF_CMD} ${DESTDIR}${KMODDIR}; \ fi .endif SUBDIR:= ${SUBDIR:u:O} .include diff --git a/sys/modules/ce/Makefile b/sys/modules/ce/Makefile deleted file mode 100644 index 998f4081a366..000000000000 --- a/sys/modules/ce/Makefile +++ /dev/null @@ -1,13 +0,0 @@ -# $Cronyx: sys.modules.ce.Makefile,v 1.2 2005/04/23 20:10:22 rik Exp $ -# $FreeBSD$ - -.PATH: ${SRCTOP}/sys/dev/ce -KMOD = if_ce -SRCS = if_ce.c ceddk.c tau32-ddk.c -SRCS += device_if.h bus_if.h pci_if.h - -.include - -CWARNFLAGS.tau32-ddk.c+= ${NO_WCONSTANT_CONVERSION} -CWARNFLAGS.tau32-ddk.c+= ${NO_WMISLEADING_INDENTATION} -CWARNFLAGS.tau32-ddk.c+= ${NO_WUNUSED_BUT_SET_VARIABLE}